这个基类和派生类的设计存在什么问题啊

vcgaoshou 2012-11-05 02:20:52
一本教材上说:以下的设计存在什么问题,如何解决
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();}
};
看了许久,看不出问题,请各位高手帮助看看
...全文
85 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
aperson111 2012-11-05
  • 打赏
  • 举报
回复
引用 1 楼 turingo 的回复:
这样设计的话,如果程序直接操作Square的set_width和set_height会使得Square的长宽不一定相等。
恩,正确
图灵狗 2012-11-05
  • 打赏
  • 举报
回复
这样设计的话,如果程序直接操作Square的set_width和set_height会使得Square的长宽不一定相等。

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧