Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2010, 20:48   #1
DartDayring
Пользователь
 
Регистрация: 10.02.2010
Сообщений: 55
По умолчанию Конструктор копирования

Нужна помощь с конструктором копирования

Код:
#include "stdafx.h"
#include <iostream> 
#include <string.h> 
using namespace std;

class Worker 
{ 
public: 
        struct base 
{ 
        char name[50]; 
        char post[25]; 
        int year; 
}; 

		Worker(){}; 

        base *obj; 
		base kop;


		Worker(const Worker &obj)
		{
			strcpy(kop.name,obj.kop.name);
			strcpy(kop.post ,obj.kop.post);
			kop.year = obj.kop.year;
		}


}; 

int main()
{
	Worker a;
	int N;
	cin>>N;
	Worker::base *obj=new Worker::base[N];
	      
	for (int n = 0; n<N; n++) 
      { 
        cout<<"Введите фамилию и инициалы работника: "; 
        cin>>obj[n].name; 
        cout<<"Введите должность: "; 
        cin>>obj[n].post; 
        cout<<"Введите год поступления на работу: "; 
        cin>>obj[n].year; 
      } 
	Worker::Worker(obj);
	cout<<a.kop.name; 


}

Последний раз редактировалось DartDayring; 16.11.2010 в 17:47.
DartDayring вне форума Ответить с цитированием
Старый 15.11.2010, 21:04   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

1. Каша какая-то с этими вложенными структурми...
2. В чем именно проблема? Сам конструктор вроде нормально написан.
pu4koff вне форума Ответить с цитированием
Старый 15.11.2010, 23:22   #3
DartDayring
Пользователь
 
Регистрация: 10.02.2010
Сообщений: 55
По умолчанию

Не копируется
DartDayring вне форума Ответить с цитированием
Старый 16.11.2010, 00:09   #4
Napkin
Пользователь
 
Аватар для Napkin
 
Регистрация: 09.12.2009
Сообщений: 25
По умолчанию

Всё нормально работает. просто действительно путаница в коде
создан массив из структур (влож. в класс).. зачем? ну да ладно
и нигде конструктор копирования не вызывается
Код:
void main()
{
	Worker a;
	int N;
	cin>>N;
	Worker::base *obj=new Worker::base[N];
	      
	for (int n = 0; n<N; n++) 
      { 
        cout<<"Введите фамилию и инициалы работника: "; 
        cin>>obj[n].name; 
        cout<<"Введите должность: "; 
        cin>>obj[n].post; 
        cout<<"Введите год поступления на работу: "; 
        cin>>obj[n].year; 
      } 
        //копируем поля первой структуры в экземпляр класса раз уж так написали..
	strcpy(a.kop.name, obj[0].name); 
	strcpy(a.kop.post, obj[0].post);
	a.kop.year = obj[0].year;
        //используем конструктор копирования для b
	Worker b(a);
        //проверяем, скопировалась ли наша борода
	cout<< "b.kop.name checking: " <<b.kop.name; 
}
как видно, всё ОК
Удел сильных - уделывать слабых
Napkin вне форума Ответить с цитированием
Старый 16.11.2010, 17:46   #5
DartDayring
Пользователь
 
Регистрация: 10.02.2010
Сообщений: 55
По умолчанию

Мне нужно конструктором копий скопировать данные из структуры base

А вы сделали копирование в мейне

Последний раз редактировалось DartDayring; 16.11.2010 в 17:50.
DartDayring вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конструктор копирования Lotles Общие вопросы C/C++ 1 31.10.2010 17:01
Конструктор копирования TBitmap Гром Общие вопросы C/C++ 4 11.10.2010 15:13
Конструктор копирования. 123er4 Общие вопросы C/C++ 4 13.06.2010 01:27
Конструктор копирования Superlotles Общие вопросы C/C++ 2 24.05.2010 17:39
Конструктор копирования Djaconda Общие вопросы C/C++ 3 11.06.2008 18:54