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

Сообщение Re[9]: Почему нельзя писать void ctor(); от 26.04.2017 8:17

Изменено 26.04.2017 8:24 CRT

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


R>А такой синтаксис:

R>
R>int obj = 1024;
R>

R>не вызывает затруднений?

а это не выглядит как вызов метода конструктора.
это воспринимается как совмещение двух операций
int obj;
obj = 1024;

в одной строке; выглядит как такой удобный способ сокращенной записи одной строкой: объявил и тут же присвоил.

Когда человек видит "=" он первым делом, и это естественно, думает что здесь срабатывает оператор присвоения.
Поэтому это не очевидно — то есть непонятно на первый взгляд — в таком синтаксисе, что
A obj=A(1024);

равно
A obj(1024);
Re[9]: Почему нельзя писать void ctor();
Здравствуйте, rg45, Вы писали:


R>А такой синтаксис:

R>
R>int obj = 1024;
R>

R>не вызывает затруднений?

а это не выглядит как вызов метода конструктора.
это воспринимается как совмещение двух операций в одной строке
int obj;
obj = 1024;

выглядит как такой удобный способ сокращенной записи одной строкой: объявил и тут же присвоил.

Когда человек видит "=" он первым делом, и это естественно, думает что здесь срабатывает оператор присвоения.
Поэтому это не очевидно — то есть непонятно на первый взгляд — в таком синтаксисе, что
A obj=A(1024);

равно
A obj(1024);