Re[4]: Почему нельзя писать void ctor();
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 23.04.17 05:43
Оценка:
Здравствуйте, Максим Рогожин, Вы писали:

МР>Для чего запрещать конструктору возвращать даже void, но при этом разрешать следующий синтаксис?


МР>class A {

МР>public:
МР> A(int);
МР>};

МР>A obj = A(1024);


А почему этот синтаксис надо запрещать? Вы тут создали безымянный объект типа A и затем скопировали его в obj. Это другое, чем просто написать A obj(1024);.

Компилятор, скорее всего, соптимизирует это в простую инициализацию (если ему не запретить созданием своих конструкторов копирования и перемещения, или введением в A нетривиальных полей), но это не меняет, что изначально это разные вещи.
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.