Сообщение Re[7]: Почему нельзя писать void ctor(); от 25.04.2017 13:16
Изменено 25.04.2017 13:19 CRT
Re[7]: Почему нельзя писать void ctor();
Здравствуйте, rg45, Вы писали:
R>Здравствуйте, Максим Рогожин, Вы писали:
N>>>А почему этот синтаксис надо запрещать?
МР>>Потому, что конструктор это функция, которая не возвращает никаких значений. Вот, например
МР>>
R>Ты сам себя загоняешь в заблуждение, пытаясь рассматривать это выражение как значение, возвращаемое функцией. В то время как никто никого здесь не возвращает — это прямое конструировние объекта имя типа которого задается конструктором.
Это выглядит как значение возвращенное функцией. А затем присвоенное с помощью оператора присвоения.
По идее, такое конструирование — это избыточность в языке, достаточно было оставить
И эта избыточность запутывает, особенно когда это касается классов, а не простых типов.
R>Здравствуйте, Максим Рогожин, Вы писали:
N>>>А почему этот синтаксис надо запрещать?
МР>>Потому, что конструктор это функция, которая не возвращает никаких значений. Вот, например
МР>>
МР>>A obj = A(1024); // значит и так нельзя писать... Потому, что функция-конструктор,
МР>> // с точки зрения синтаксиса, похожа на функцию createObject(int) тем,
МР>> // что у нее нет возвращаемого значения.
МР>>R>Ты сам себя загоняешь в заблуждение, пытаясь рассматривать это выражение как значение, возвращаемое функцией. В то время как никто никого здесь не возвращает — это прямое конструировние объекта имя типа которого задается конструктором.
Это выглядит как значение возвращенное функцией. А затем присвоенное с помощью оператора присвоения.
По идее, такое конструирование — это избыточность в языке, достаточно было оставить
A obj(1024);И эта избыточность запутывает, особенно когда это касается классов, а не простых типов.
Re[7]: Почему нельзя писать void ctor();
Здравствуйте, rg45, Вы писали:
R>Здравствуйте, Максим Рогожин, Вы писали:
N>>>А почему этот синтаксис надо запрещать?
МР>>Потому, что конструктор это функция, которая не возвращает никаких значений. Вот, например
МР>>
R>Ты сам себя загоняешь в заблуждение, пытаясь рассматривать это выражение как значение, возвращаемое функцией. В то время как никто никого здесь не возвращает — это прямое конструировние объекта имя типа которого задается конструктором.
Это выглядит как значение возвращенное функцией. А затем присвоенное с помощью оператора присвоения.
По идее, такое конструирование — это избыточность в языке, достаточно было оставить
И эта избыточность запутывает
R>Здравствуйте, Максим Рогожин, Вы писали:
N>>>А почему этот синтаксис надо запрещать?
МР>>Потому, что конструктор это функция, которая не возвращает никаких значений. Вот, например
МР>>
МР>>A obj = A(1024); // значит и так нельзя писать... Потому, что функция-конструктор,
МР>> // с точки зрения синтаксиса, похожа на функцию createObject(int) тем,
МР>> // что у нее нет возвращаемого значения.
МР>>R>Ты сам себя загоняешь в заблуждение, пытаясь рассматривать это выражение как значение, возвращаемое функцией. В то время как никто никого здесь не возвращает — это прямое конструировние объекта имя типа которого задается конструктором.
Это выглядит как значение возвращенное функцией. А затем присвоенное с помощью оператора присвоения.
По идее, такое конструирование — это избыточность в языке, достаточно было оставить
A obj(1024);И эта избыточность запутывает