Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
CheshireCat
Эксперт С++
2912 / 1261 / 114
Регистрация: 27.05.2008
Сообщений: 3,464
12.05.2011, 12:49 0

Почему не вызывается конструктор копирования?

12.05.2011, 12:49. Просмотров 4373. Ответов 53
Метки (Все метки)

Ответ

Цитата Сообщение от kravam Посмотреть сообщение
... а теперь вот другая ситуация; тоже должен вызываться конструктор копирования и тоже он не вызывается. Почему? Хотя в книге написано, что конструктор копирования вызывается, когда возвращаемое значение имеет тип класса!
В книге написано правильно. Теоретически, конструктор копирования должен быть вызван. Но разработчики компилятор - хииитрые! Они использовали положение Стандарта языка, разрешающее т.н. Return Value Optimization - RVO - т.е. создавать возвращаемый объект obj прямо в том месте, "куда" он возвращается. В этом случае - да, конструктор копирования не будет вызван, что экономит процессорное время и улучшает производительность программы. Возможно, автор книги либо не мог знать об RVO (если книга писалась в давние-давние времена....), либо пока сознательно не стал заострять на этом внимание.

Вернуться к обсуждению:
Почему не вызывается конструктор копирования?
2
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2011, 12:49
Готовые ответы и решения:

Почему не вызывается конструктор копирования при возврате объекта из функции
Добрый день! Насколько мне известно, конструктор копирования вызывается:...

НЕ вызывается конструктор копирования
НЕ вызывается конструктор копирования (не явно), как сделать чтобы это было...

Когда вызывается конструктор копирования?
Пожалуйста помогите ответить на вопрос "Когда вызывается конструктор...

Сколько раз вызывается конструктор копирования
Почему n не увеличивается? Point(const Point& src){ n++; set(src.x+1,...

В каких случаях вызывается конструктор копирования, и стоит ли вообще об этом думать?
В книге Г. Шилдта написано, что конструктор копирования может неявно...

53
Другие темы раздела
C++ Поменять соседние слова местами http://www.cyberforum.ru/cpp-beginners/thread186801.html
задание: Дано предложение. Вывести его на экран, меняя местами каждые два соседних слова. Никак не могу сообразить что нужно делать, что использовать. уде не 1-й день мучаюсь над этой задачей....
C++ Класс Rectangle совпадает с функцией Rectangle Пишу свой класс Rectangle, который при отрисовки использует функцию Rectangle из GDI. Возникает ошибка из-за того, что имена одинаковые. Но менять имя своего класса я, естественно, не хочу... Как... http://www.cyberforum.ru/cpp-beginners/thread186792.html
C++ Программа со структурами.
Не могли бы Вы помочь мне с написанием этой программы. Описать структуру с именем NOTE, содержащую следующие поля: NAME - фамилия, имя; TEL - номер телефона; BDAY - день рождения (массив из...
C++ возврат по ссылкам
На защиту лаб.работы препод требует рассказать о возврате по ссылкам. Зачем они? Как они описываются, какой у них плюс?
C++ упорядочен ли массив по неубыванию, по невозрастанию или не упорядочен вообще http://www.cyberforum.ru/cpp-beginners/thread186787.html
Блин вест мозг себе уже вынес, никак не могу решить задачу(((. Помогите кто чем может. Задача:Написать подпрограмму,которая проверяла бы, упорядочен ли массив по неубыванию (Xi<=Xi+1),по...
C++ Интегрирование по методу Симпсона написать программу которая посчитала бы интеграл сos(x+x^3)dx по методу симпсона с точностью до одной тысячной.буду оч.благодарен))) подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru