|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.05.2017, 10:21 | #1 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
Конструктор.
Здравствуйте!
Никак не могу полностью понять суть конструктора. Не всё понимаю по его возможностям. Смотрел Википедию. Учусь по Лафоре. Правильно ли я понял, что конструктор, это функция (метод), срабатывающая при создании объекта? Если это так, то почему конструктор копирования по умолчанию работает после создания объекта? Строка 30 следующего кода: Код:
Код:
Код:
|
22.05.2017, 10:28 | #2 | ||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,695
|
Цитата:
Цитата:
Код:
Код:
|
||
22.05.2017, 10:50 | #3 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
Нет не понятно.
|
22.05.2017, 10:51 | #4 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
Конструктор должен работать только в момент создания объекта. Если нет, если есть вариации, то нужен принцип, по которой работают эти вариации.
Distance dist3; Всё, объект создан, конструктор должен отработать в этот момент. Не отработал, всё работает что-то другое, например нужен какой-то метод. dist3=dist1; Это уже другая строка. Другой момент. Это не создание объекта, это работа с объектами. Так работает моя логика на основе тех знаний которые есть. Последний раз редактировалось KAMLS; 22.05.2017 в 10:54. |
22.05.2017, 11:05 | #5 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Так он и вызывается в момент создания. Просто в том сообщении два объекта создано, new Distance два раза вызван же.
А при dist3=dist1 вы ж копию создаете, новый объект.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
22.05.2017, 11:17 | #6 | ||||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,695
|
Цитата:
Цитата:
Цитата:
Цитата:
|
||||
22.05.2017, 15:37 | #7 | |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
Цитата:
Объясните пожалуйста, какой именно объект создаётся в строке: dist3=dist1; dist3 создан выше, в строке: Distance dist3; В строке dist3=dist1; значения полей объекта dist1 копируются в поля объекта dist3. Объект dist3 заново не создаётся. |
|
22.05.2017, 15:56 | #8 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,493
|
|
22.05.2017, 16:01 | #9 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
А что ж там работает?
|
22.05.2017, 16:04 | #10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,493
|
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Конструктор | 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 |