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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Nike1995
2 / 2 / 0
Регистрация: 14.10.2012
Сообщений: 260
#1

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

04.04.2016, 03:10. Просмотров 137. Ответов 5
Метки нет (Все метки)

Задание: есть класс, одним из пунктом является написание класса копирования.
Есть такой код
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);
А что тут происходит е очень понимаю. На с++ пишу два дня, нужна помощь))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2016, 03:10     Пример конструктора копирования не понятен
Посмотрите здесь:

Все случаи использования конструктора копирования C++
Вызов конструктора для this в констукторе копирования C++
Перегрузка конструктора копирования и оператора присвоения C++
C++ Касательно конструктора копирования
C++ По поводу ссылок и конструктора копирования
C++ Ошибка в перегрузке конструктора копирования
C++ Подскажите реализацию конструктора копирования
C++ Неявный вызов конструктора копирования
Не понятна работа конструктора копирования C++
C++ В чём отличия конструктора копирования и конструктора перемещения? Где и как их нужно использовать?
C++ Грамотное использование конструктора копирования

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zer0mail
2308 / 1934 / 192
Регистрация: 03.07.2012
Сообщений: 6,924
Записей в блоге: 1
04.04.2016, 05:53     Пример конструктора копирования не понятен #2
В коде нет констуктора копирования
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
3361 / 1683 / 448
Регистрация: 18.10.2014
Сообщений: 3,088
04.04.2016, 06:38     Пример конструктора копирования не понятен #3
Цитата Сообщение от Nike1995 Посмотреть сообщение
C++
1
Phone::Phone(Phone *a)
Это конструктор конверсии. Конструктора копирования в приведенном коде нет и в помине.
Serg_o_Grey
59 / 59 / 22
Регистрация: 29.03.2016
Сообщений: 301
04.04.2016, 07:28     Пример конструктора копирования не понятен #4
TheCalligrapher,
Это конструктор конверсии. Конструктора копирования в приведенном коде нет и в помине.
А как по вашему должен выглядеть конструктор копирования?
Как по моему, так это он и есть.
Здесь создается новый элемент списка и в него копируются значения из элемента списка a
Что это если не копирование???
Да, и конверсия это неотъемлемый этап копирования!
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
3361 / 1683 / 448
Регистрация: 18.10.2014
Сообщений: 3,088
04.04.2016, 07:50     Пример конструктора копирования не понятен #5
Цитата Сообщение от Serg_o_Grey Посмотреть сообщение
А как по вашему должен выглядеть конструктор копирования?
Конструктор копирования - четко определенный термин в языке С++, играющий особую роль в целом ряде ситуаций. Конструктором копирования класса C называется конструктор, у которого первый параметр имеет тип C &, const C &, volatile C & или const volatile C & и либо больше нет параметров вообще, либо все остальные параметры имеют аргументы по умолчанию.

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

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

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