Re: Конструктор. Ошибка C2614
От: Юрий Жмеренецкий ICQ 380412032
Дата: 28.09.09 09:21
Оценка:
Здравствуйте, 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...
Пока на собственное сообщение не было ответов, его можно удалить.