Re[2]: Конструктор. Ошибка C2614
От: zfima  
Дата: 28.09.09 09:25
Оценка:
Здравствуйте, Юрий Жмеренецкий, Вы писали:

ЮЖ>Здравствуйте, zfima, Вы писали:


Z>>почему так можно


ЮЖ>[...]


Z>>а так нет???


Z>>
Z>>class area_cl{
Z>>public:
Z>>    int height;
Z>>    int width;
Z>>};

Z>>class cilinder: public area_cl{
Z>>public:cilinder(int h, int w): height(h), width(w){}
Z>>};
Z>>


ЮЖ>Вызов конструктора 'cilinder' должен привести к вызову конструктора area_cl, но запись ': height(h), width(w)' никак не может быть таким вызовом (формально, в этом контексте не будут найдены имена height/width).


ЮЖ>Вызывать конструктор базобого подобъекта нужно так:

ЮЖ>
ЮЖ>class area_cl{
ЮЖ>public:
ЮЖ>    area_cl(int h, int w) : height(h), width(w){}
ЮЖ>    int height;
ЮЖ>    int width;
ЮЖ>};

ЮЖ>class cilinder: public area_cl{
ЮЖ>    public:
ЮЖ>        cilinder(int h, int w): area_cl(h, w){}
ЮЖ>};
ЮЖ>

Спасибо Юра!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.