![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
![]()
Оператор присваивания ничего не знает о типах данных созданных пользователем. Он работает только со стандартными типами, за исключением перегрузки операции присваивания.
dist3=dist1; Ничего он тут присвоить не может. |
![]() |
![]() |
![]() |
#12 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,831
|
![]()
http://en.cppreference.com/w/cpp/lan...opy_assignment
Особое внимание на Цитата:
|
|
![]() |
![]() |
![]() |
#13 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]() |
![]() |
![]() |
![]() |
#14 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
![]()
Вот зашел я помощи попросить. Как многие пишут:
Запомните раз и навсегда: помочь != "решите за меня"! Если мне по-русски (не по-английски) толково, простыми словами объяснят логику конструкторов (и даже черт с ним, с оператором присваивания), неужели это будет "решение за меня"? Быть может я через чур наглый, и многого прошу?... Интересно, сколько символов потребуется, чтобы ясно и внятно объяснить незнающему человеку логику конструктора? В принципе я не говорю о том, что ничего не знаю вообще. Смысл конструктора понимаю и пользовался им уже в примерах. Но не понимаю именно некоторые нюансы. Вот например конструктор с одним аргументом. Четкий пример. Конструктор с одним аргументом в примере Times 2 работает после создания объекта в следующей строке. Строка 92 следующего кода: Код:
|
![]() |
![]() |
![]() |
#15 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Так ответили ж уже 2 раза, неужели даже с гугл транслейтом одну строку перевести не можете?)
Там говорится о том, что у классов/структур по умолчанию есть оператор копирования.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#16 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
![]()
Т.е. оператор копирования не является конструктором копирования и может пользоваться операцией присваивания:
t12=t24; dist3=dist1; ? А как оператор копирования узнал о том, как надо присвоить данные в примере t12=t24;? Там для такого присваивания целый метод написан (конструктор). С переводом данных одного формата в другой формат. При этом объекты разных классов. Я знаю про конструктор копирования по умолчанию, он может сам скопировать присвоить поля одного объекта полям другого но одного класса. А тут как? t12=t24; Как оператор по умолчанию может знать что придет программисту на ум сделать в разных классах? Чтобы потом объекты разных классов присваивать друг другу.. Нет, я понимаю что это делается, но как?!! |
![]() |
![]() |
![]() |
#17 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
"С переводом данных одного формата в другой формат" это какое-то странное копирование.
Или там из одного класса в другой? Тогда это не то и по умолчанию конечно не будет. По умолчанию он просто копирует значения всех полей.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#18 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
![]()
Дак я тут уже пол-часа расшибаюсь...
Те примеры кодов кто-нибудь смотрел? Я ведь именно на них озадачился, что не понимаю процесса.. |
![]() |
![]() |
![]() |
#19 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
![]()
Там программа, переводит формат времени 12 часов в формат времени 24 часа (точнее наоборот)))
Т.е. один класс имеет такие поля, а другой класс другие. Создан конструктор time12(time24); класса time12. Вот там то и есть что конструктор работает при создании объекта, а копирование происходит в другой строке: time12 t12; t12=t24; |
![]() |
![]() |
![]() |
#20 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,831
|
![]()
1. Компилятор увидит
Код:
3. Создаст временный объект благодаря перегруженному конструктору Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Конструктор | 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 |