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