Здравствуйте, 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){}
};