Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
15 / 15 / 21
Регистрация: 13.11.2014
Сообщений: 275
1

Конструктор копирования

16.03.2016, 22:43. Показов 1015. Ответов 3
Метки нет (Все метки)

Помогите сделать для этого конструктор копирования.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Animal
{
private:
    int n;
    int age;
    char* type;
    char* name;
    char* color;
    int weight;
 
public:
    void write_file(Animal& obj);
    void read_file(Animal* obj, int n);
    void print_file(const Animal *obj, int n);
    Animal(const Animal &obj);
    Animal();
    ~Animal();
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Animal::Animal()
{
    cin >>n;
    cout << "имя :";
    cin >> name;
    cout << "порода :";
    cin >> type;
    cout << "масть :";
    cin >> color;
    cout << "возраст :";
    cin >> age;
    cout << "вес :";
    cin >> weight;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.03.2016, 22:43
Ответы с готовыми решениями:

Не могу сделать чтобы класс содержал основной конструктор и конструктор копирования
Разработать класс ThreeAngle для работы с плоскими треугольниками. В качестве членов-данных...

Конструктор класса, конструктор копирования запускается не тот который нужен
Есть такой конструктор: Neuron::Neuron(int iType_activation_funk) { this-&gt;iType_act =...

Не могу правильно сделать конструктор и конструктор копирования и принадлежность точки с заданными координатами треугольнику
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;windows.h&gt; #include...

Конструктор инициализации, конструктор копирования, деструктор
Я сделал почти задание по перегрузке операторов. Осталось одно, тоесть три: конструктор...

3
С чаем беда...
Эксперт CЭксперт С++
9150 / 4669 / 1268
Регистрация: 18.10.2014
Сообщений: 10,546
16.03.2016, 23:03 2
Для того, чтобы написать для класса с указателями конструктор копирования, надо сначала знать, каким образом класс работает: какая память принадлежит классу, а какая - не принадлежит. Надо знать, каким способом память выделяется и освобождается, и т.п. детали.

Ничего подобного вы не описали, а лишь привели кривой конструктор по умолчанию, который память не выделяет вообще, по каковой причине неработоспособен.
1
15 / 15 / 21
Регистрация: 13.11.2014
Сообщений: 275
16.03.2016, 23:14  [ТС] 3
TheCalligrapher, подскажите, пожалуйста, как это сделать
0
nd2
3416 / 2796 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
17.03.2016, 01:25 4
Лучший ответ Сообщение было отмечено ighor как решение

Решение

Цитата Сообщение от ighor Посмотреть сообщение
Помогите сделать для этого конструктор копирования.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
 
    Animal::Animal(const Animal &obj)
    {
        type = new char[strlen(obj.type) + 1];
        strcpy(type, obj.type);
        name = new char[strlen(obj.name) + 1];
        strcpy(name, obj.name);
        color = new char[strlen(obj.color) + 1];
        strcpy(color, obj.color);
        n = obj.n;
        age = obj.age;
        weight = obj.weight;
    }
Добавлено через 7 минут
Цитата Сообщение от ighor Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Animal::Animal()
{
cin >>n;
cout << "имя :";
cin >> name;
cout << "порода :";
cin >> type;
cout << "масть :";
cin >> color;
cout << "возраст :";
cin >> age;
cout << "вес :";
cin >> weight;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Animal::Animal() : type(new char[20]), name(new char[20], color(new char[20])
{
cin >>n;
cout << "имя :";
cin >> name;
cout << "порода :";
cin >> type;
cout << "масть :";
cin >> color;
cout << "возраст :";
cin >> age;
cout << "вес :";
cin >> weight;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.03.2016, 01:25

Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор
Всем доброго времени суток! нужна ваша помощь! нужно создать класс вектор и реализовать...

Конструктор копирования
Ответьте пожалуйста какой необходим конструктор копирования для объекта класса который передается в...

Конструктор копирования
Здравствуйте) объясните пожалуйста в чём проблема при описании в классе конструктора копирования...

Конструктор копирования
Здраствуйте! Ниже приведено 2 исходника. Подскажите, пожалуйста, в котором из них нужно вставить...

Конструктор копирования
Помогите пожалуйста разобраться, необходимо добавить конструктор копирования, теорию знаю, а как на...

С++: new и конструктор копирования
Пусть есть класс Example (с конструктором копирования). Example *e1; e1 = ...; Example *e3 =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.