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