Форум программистов, компьютерный форум CyberForum.ru

Пример конструктора копирования не понятен - C++

Восстановить пароль Регистрация
 
Nike1995
2 / 2 / 0
Регистрация: 14.10.2012
Сообщений: 256
04.04.2016, 03:10     Пример конструктора копирования не понятен #1
Задание: есть класс, одним из пунктом является написание класса копирования.
Есть такой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Phone::Phone(Phone *a){
    this->set_firstName(a->get_firstName());
    this->set_lastName(a->get_lastName());
    this->set_fatherName(a->get_fatherName());
    this->set_adress(a->get_adress());
    this->set_number(a->get_number());
    this->inCalls = a->get_inCalls();
    this->outCalls = a->get_outCalls();
}
Phone *Phone::copy(Phone *a){
    set_firstName(a->get_firstName());
    set_lastName(a->get_lastName());
    set_fatherName(a->get_fatherName());
    set_adress(a->get_adress());
    set_number(a->get_number());
 
    this->inCalls = a->inCalls;
    this->outCalls = a->get_outCalls();
 
    return this;
}
Предположительно он и есть. Но что в этом коде делается? В учебниках пишут, что класс копирования объявляется так
C++
1
Phone(const Phone &a);
А что тут происходит е очень понимаю. На с++ пишу два дня, нужна помощь))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zer0mail
2185 / 1868 / 187
Регистрация: 03.07.2012
Сообщений: 6,640
Записей в блоге: 1
04.04.2016, 05:53     Пример конструктора копирования не понятен #2
В коде нет констуктора копирования
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2897 / 1433 / 394
Регистрация: 18.10.2014
Сообщений: 2,640
04.04.2016, 06:38     Пример конструктора копирования не понятен #3
Цитата Сообщение от Nike1995 Посмотреть сообщение
C++
1
Phone::Phone(Phone *a)
Это конструктор конверсии. Конструктора копирования в приведенном коде нет и в помине.
Serg_o_Grey
46 / 46 / 19
Регистрация: 29.03.2016
Сообщений: 260
04.04.2016, 07:28     Пример конструктора копирования не понятен #4
TheCalligrapher,
Это конструктор конверсии. Конструктора копирования в приведенном коде нет и в помине.
А как по вашему должен выглядеть конструктор копирования?
Как по моему, так это он и есть.
Здесь создается новый элемент списка и в него копируются значения из элемента списка a
Что это если не копирование???
Да, и конверсия это неотъемлемый этап копирования!
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2897 / 1433 / 394
Регистрация: 18.10.2014
Сообщений: 2,640
04.04.2016, 07:50     Пример конструктора копирования не понятен #5
Цитата Сообщение от Serg_o_Grey Посмотреть сообщение
А как по вашему должен выглядеть конструктор копирования?
Конструктор копирования - четко определенный термин в языке С++, играющий особую роль в целом ряде ситуаций. Конструктором копирования класса C называется конструктор, у которого первый параметр имеет тип C &, const C &, volatile C & или const volatile C & и либо больше нет параметров вообще, либо все остальные параметры имеют аргументы по умолчанию.

То, что в каком-то конструкторе что-то куда-то копируется, еще не делает этот конструктор конструктором копирования.

Цитата Сообщение от Serg_o_Grey Посмотреть сообщение
Да, и конверсия это неотъемлемый этап копирования!
Каждый конструктор копирования формально является и конструктором конверсии. Но не каждый конструктор конверсии является конструктором копирования. Этот - не является.
Serg_o_Grey
46 / 46 / 19
Регистрация: 29.03.2016
Сообщений: 260
04.04.2016, 07:54     Пример конструктора копирования не понятен #6
TheCalligrapher, ясно. Спасибо
Yandex
Объявления
04.04.2016, 07:54     Пример конструктора копирования не понятен
Ответ Создать тему
Опции темы

Текущее время: 01:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru