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

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

Изменено 26.04.2017 9:07 CRT

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


CRT>>а это не выглядит как вызов метода конструктора.


R>A если так?

R>
R>int obj = int(1024);
R>



Так — выглядит. Выглядит как вызов конструктора а потом присвоение. Только так со встроенными типами очень мало кто пишет. Зачем для инта вызывать конструктор? Да многие даже не знают что у int он как бы есть.

CRT>>это воспринимается как совмещение двух операций

CRT>>
CRT>>int obj;
CRT>>obj = 1024;
CRT>>


R>Что тебе мешает и в случае с пользовательским типом думать об этом как о совмещении двух операций?


Ничего не мешает. В том-то и проблема. Многие так и думают поначалу. А потом удивляются, почему оператор присвоения, который они определили для своего класса, не срабатывает в этой записи
A obj=A(1024);
Re[11]: Почему нельзя писать void ctor();
Здравствуйте, rg45, Вы писали:


CRT>>а это не выглядит как вызов метода конструктора.


R>A если так?

R>
R>int obj = int(1024);
R>



Так — выглядит. Выглядит как вызов конструктора а потом присвоение. Только так со встроенными типами очень мало кто пишет. Зачем для инта вызывать конструктор? Да многие даже не знают что у int он как бы есть.

CRT>>это воспринимается как совмещение двух операций

CRT>>
CRT>>int obj;
CRT>>obj = 1024;
CRT>>


R>Что тебе мешает и в случае с пользовательским типом думать об этом как о совмещении двух операций?


Ничего не мешает. В том-то и проблема. Многие так и думают поначалу. А потом удивляются, почему оператор присвоения, который они определили для своего класса, не срабатывает в записи
A obj=A(1024)