Сообщение Re[9]: Почему нельзя писать void ctor(); от 26.04.2017 8:17
Изменено 26.04.2017 8:24 CRT
Re[9]: Почему нельзя писать void ctor();
Здравствуйте, rg45, Вы писали:
R>А такой синтаксис:
R>
R>не вызывает затруднений?
а это не выглядит как вызов метода конструктора.
это воспринимается как совмещение двух операций
в одной строке; выглядит как такой удобный способ сокращенной записи одной строкой: объявил и тут же присвоил.
Когда человек видит "=" он первым делом, и это естественно, думает что здесь срабатывает оператор присвоения.
Поэтому это не очевидно — то есть непонятно на первый взгляд — в таком синтаксисе, что
равно
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>не вызывает затруднений?
а это не выглядит как вызов метода конструктора.
это воспринимается как совмещение двух операций в одной строке
выглядит как такой удобный способ сокращенной записи одной строкой: объявил и тут же присвоил.
Когда человек видит "=" он первым делом, и это естественно, думает что здесь срабатывает оператор присвоения.
Поэтому это не очевидно — то есть непонятно на первый взгляд — в таком синтаксисе, что
равно
R>А такой синтаксис:
R>
R>int obj = 1024;
R>R>не вызывает затруднений?
а это не выглядит как вызов метода конструктора.
это воспринимается как совмещение двух операций в одной строке
int obj;
obj = 1024;выглядит как такой удобный способ сокращенной записи одной строкой: объявил и тут же присвоил.
Когда человек видит "=" он первым делом, и это естественно, думает что здесь срабатывает оператор присвоения.
Поэтому это не очевидно — то есть непонятно на первый взгляд — в таком синтаксисе, что
A obj=A(1024);равно
A obj(1024);