|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.09.2015, 17:25 | #1 |
Пользователь
Регистрация: 16.08.2015
Сообщений: 40
|
Проблемы с копирующим конструктором
Код:
Вопрос мой находится где то в этой строке Код:
1) Объявляется некий элемент turboOne, в аргумент конструктора которого передаётся строка "Turbo". 2) Создается элемент turboTwo, которому передается целый объект. У компилятора в этот момент есть выбор только между двумя конструкторами и он передает аргумент turboTwo копирующему конструктору. 3) Дальше идет функция fn, которая аргументом своим берет некий элемент класса turbo. Не ссылку на него, не указатель, а весь элемент целиком. Основной вопрос касается функции fn. Как компилятор понимает, что в fn, переданный ей объект нужно конструировать копирующим конструктором? |
04.09.2015, 17:30 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Не бывает "элемента целиком", бывает копия.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
04.09.2015, 17:42 | #3 |
мальчик-помогай =)
Форумчанин
Регистрация: 16.09.2010
Сообщений: 522
|
Код:
|
04.09.2015, 20:54 | #4 |
Пользователь
Регистрация: 16.08.2015
Сообщений: 40
|
Это то ясно. Неясно другое. fn... fn очень сильно интересует. Она тоже вызывает у объекта копирующий конструктор. Как она это делает? У нее в аргументе ни адреса, ни ссылки, ни намека на то, что надо вызвать копирующий конструктор. А она все равно гнет свою линию.
|
04.09.2015, 20:56 | #5 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Как это нет намека? Это ж просто синтаксис для передачи копии в функции. Можно копию, можно ссылку, можно указатель, больше никак* нельзя.
* ну может есть и другие варианты, я не гуру С++, но это основные
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 04.09.2015 в 20:58. |
04.09.2015, 21:07 | #6 |
Пользователь
Регистрация: 16.08.2015
Сообщений: 40
|
Истина где то рядом, но я все равно не понял. Можно то же самое, но только для тех, кто в бронепоезде?
|
04.09.2015, 21:11 | #7 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Что именно вы понять пытаетесь? Так в С++ выглядит синтаксис передачи копии объекта.
Код:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
04.09.2015, 21:17 | #8 |
Пользователь
Регистрация: 16.08.2015
Сообщений: 40
|
|
04.09.2015, 21:23 | #9 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Кому должна? Вы ж не на ассемблере пишете.
Если так написано — значит передается копия, будет вызван конструктор копирования для создания копии. Больше нет вариантов при такой записи, потому и не надо ничего самому вызывать.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
04.09.2015, 21:27 | #10 |
Пользователь
Регистрация: 16.08.2015
Сообщений: 40
|
Т.е.мне остается лишь смириться со своей нелегкой долькой , вздохнуть тяжело и запомнить этот злой непонятный и нелогичный синтаксис?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка с конструктором копирования | Qwoort | Общие вопросы C/C++ | 11 | 13.06.2012 21:53 |
Проблемы с конструктором | Merovingian | Общие вопросы C/C++ | 8 | 28.09.2011 14:55 |
Проблема с конструктором | igor17 | Общие вопросы C/C++ | 13 | 15.05.2011 22:23 |
Что-то не так с конструктором | Дырдин | Общие вопросы C/C++ | 7 | 26.03.2010 18:33 |
Помогите с конструктором | girkoff | Общие вопросы C/C++ | 10 | 01.11.2009 16:01 |