![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
![]()
Здравствуйте!
Никак не могу полностью понять суть конструктора. Не всё понимаю по его возможностям. Смотрел Википедию. Учусь по Лафоре. Правильно ли я понял, что конструктор, это функция (метод), срабатывающая при создании объекта? Если это так, то почему конструктор копирования по умолчанию работает после создания объекта? Строка 30 следующего кода: Код:
Код:
Код:
|
![]() |
![]() |
![]() |
#2 | ||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,830
|
![]() Цитата:
Цитата:
Код:
Код:
|
||
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
![]()
Нет не понятно.
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
![]()
Конструктор должен работать только в момент создания объекта. Если нет, если есть вариации, то нужен принцип, по которой работают эти вариации.
Distance dist3; Всё, объект создан, конструктор должен отработать в этот момент. Не отработал, всё работает что-то другое, например нужен какой-то метод. dist3=dist1; Это уже другая строка. Другой момент. Это не создание объекта, это работа с объектами. Так работает моя логика на основе тех знаний которые есть. Последний раз редактировалось KAMLS; 22.05.2017 в 10:54. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Так он и вызывается в момент создания. Просто в том сообщении два объекта создано, new Distance два раза вызван же.
А при dist3=dist1 вы ж копию создаете, новый объект.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#6 | ||||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,830
|
![]() Цитата:
Цитата:
Цитата:
Цитата:
|
||||
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
![]() Цитата:
Объясните пожалуйста, какой именно объект создаётся в строке: dist3=dist1; dist3 создан выше, в строке: Distance dist3; В строке dist3=dist1; значения полей объекта dist1 копируются в поля объекта dist3. Объект dist3 заново не создаётся. |
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]() |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
![]()
А что ж там работает?
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Конструктор | KHz | Помощь студентам | 4 | 14.12.2015 12:49 |
Конструктор | gospodenkods | Фриланс | 3 | 22.04.2014 07:27 |
конструктор | zla9_kolu4ka | Общие вопросы C/C++ | 2 | 09.03.2014 02:37 |
С++ (конструктор, деструктор, копирующий конструктор) | Jane-sad | Помощь студентам | 2 | 01.10.2010 10:01 |
Конструктор | PilGrim | Общие вопросы C/C++ | 0 | 16.01.2009 10:21 |