Информация об изменениях

Сообщение Re[6]: Почему нельзя писать void ctor(); от 24.04.2017 14:42

Изменено 24.04.2017 14:42 rg45

Re[6]: Почему нельзя писать void ctor();
Здравствуйте, Максим Рогожин, Вы писали:

N>>А почему этот синтаксис надо запрещать?

МР>Потому, что конструктор это функция, которая не возвращает никаких значений. Вот, например
МР>
МР>A obj = A(1024);            // значит и так нельзя писать... Потому, что функция-конструктор,
МР>                            // с точки зрения синтаксиса, похожа на функцию createObject(int) тем, 
МР>                            // что у нее нет возвращаемого значения.
МР>


Ты сам себя загоняешь в заблуждение, пытаясь рассматривать это выражение как значение, возвращаемое функцией. В то время как никто никого здесь не возвращает — это прямое конструировние объекта имя тима которого задается задается конструктором. Это по смыслу то же самое что и
int obj = int(1024);

Нет здесь никакого возвращаемого значения, видишь?
Re[6]: Почему нельзя писать void ctor();
Здравствуйте, Максим Рогожин, Вы писали:

N>>А почему этот синтаксис надо запрещать?

МР>Потому, что конструктор это функция, которая не возвращает никаких значений. Вот, например
МР>
МР>A obj = A(1024);            // значит и так нельзя писать... Потому, что функция-конструктор,
МР>                            // с точки зрения синтаксиса, похожа на функцию createObject(int) тем, 
МР>                            // что у нее нет возвращаемого значения.
МР>


Ты сам себя загоняешь в заблуждение, пытаясь рассматривать это выражение как значение, возвращаемое функцией. В то время как никто никого здесь не возвращает — это прямое конструировние объекта имя типа которого задается конструктором. Это по смыслу то же самое что и
int obj = int(1024);

Нет здесь никакого возвращаемого значения, видишь?