这个基类和派生类的设计存在什么问题啊
一本教材上说:以下的设计存在什么问题,如何解决
class Rectangle{
public:
Rectangle(double w,double h):width(w),height(h){}
void set_width(double w){width=w;}
void set_height(double h){height=h;}
double get_width()const{return width;}
double get_height()const{return height;}
double area()const{return width*height;}
void print()const{cout<<width<<","<<height<<endl;}
private:
double width,height;
};
class Square : public Rectangle{
public:
Square(double s):Rectangle(s,s){}
void set_side(double s){
set_width(s);
set_height(s);
}
double get_side()const{return get_width();}
};
看了许久,看不出问题,请各位高手帮助看看