|
|
||||||
Как работает компилятор при создании объекта25.10.2013, 13:06. Показов 4175. Ответов 36
Метки нет (Все метки)
Таки думал разобрался как работает конструктор копирования, а выходит, что нет.
Вопрост состоит в следующем. Имеем код представляющий собой класс для хранения указателей на строки которые хранятся в другом классе(суть в том что бы не хранить в памяти несколько копия строк если они идентичны): Кликните здесь для просмотра всего текста
Когда я в первый раз читал Лафоре этот код отлично компилился(в то время я работал в VS 6.0). В данный момент я программирую в среде Code::Blocks и в ней данный код не компилится. Ругается на неоднозначное определение конструктора. Вот отсюда и вопрос: А что собственно происходит при создании объекта? Когда запускается конструктор копирования, а когда конструктор с одним аргументом? Все это время я полагал, что сперва запускается конструктор копирования, а вот он в свою очередь вызывает конструктор с одним аргументом. Таки все же я не прав или как? Просвятите пожайлуста. Добавлено через 5 минут Странно. Конструктор копирования в VS не вызывается...
0
|
||||||
| 25.10.2013, 13:06 | |
|
Ответы с готовыми решениями:
36
Компилятор выдает ошибку при создании списка При объявлении объекта компилятор требует ';' При создании статического объекта получают различные адреса при различных обращениях |
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||
| 25.10.2013, 14:24 | ||
Сообщение было отмечено как решение
Решение
Ilot, Почитайте стандарт.
8.5 Initializers
Если позволяет английский более подробно можно прочесть тут: http://stackoverflow.com/quest... itializati Добавлено через 21 секунду ninja2, Оператор присваивания тут не зовется.
3
|
||
|
|
|||||||||
| 25.10.2013, 14:26 | |||||||||
ForEveR, это конечно все верно, но
А флаг -fno-elide-constructors лишь это запрещает.
1
|
|||||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||
| 25.10.2013, 14:27 | ||
Сообщение было отмечено как решение
Решение
3
|
||
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
||
| 25.10.2013, 14:31 | ||
.
0
|
||
|
|
|||||||||||||||||
| 25.10.2013, 14:49 [ТС] | |||||||||||||||||
|
ForEveR, castaway, все парни разобрался. Вы абсолютно правы. Таки у меня там еще одна строчка была в коде:
.Добавлено через 9 минут Таки идем дальше. Мы не выяснили самое главное. Почему в исходном коде компилятор ругается на неоднозначность. Может ли это быть связанно, что он не распознает:
В таком виде все прекрасно компилится:
1
|
|||||||||||||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 25.10.2013, 14:51 | |
|
Ilot, Я уже объяснил в чем проблема. Создается временный объект, который после уходит в конструктор копирования, НО временный объект не может быть привязан к неконстантной ссылке, однако MSVC как расширение позволяет это, чем вообщем-то нарушает стандарт С++. Константную ссылку он принимать должен, чтобы не было таких ситуаций.
2
|
|
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
||||||
| 25.10.2013, 14:54 | ||||||
|
ForEveR, а я почемуто до этой темы всегда считал что если мы так пишем
0
|
||||||
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
| 25.10.2013, 14:57 | |
|
Отак как то A a(operator=(A( int ))); , Ну если есть оператор = то полюбом должна же функция вызваться operator=() ??? Почему тут происходит не понятно как?
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 25.10.2013, 15:00 | ||||||
|
ninja2, Читаем выше.
1
|
||||||
|
|
||||||||||||
| 25.10.2013, 15:01 [ТС] | ||||||||||||
0
|
||||||||||||
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|||
| 25.10.2013, 15:08 | |||
|
Добавлено через 1 минуту Добавлено через 2 минуты Ilot, Ты своим постом всю мою цепочку знаний разломал.
0
|
|||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||
| 25.10.2013, 15:11 | ||
|
Ilot,
1
|
||
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
||
| 25.10.2013, 15:15 | ||
|
0
|
||
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
| 25.10.2013, 15:53 | |
|
castaway, Ну да.
0
|
|
| 25.10.2013, 15:53 | |
|
Вылет программы при создании объекта
Undefined reference при создании объекта
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Книги по геймдизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|