试题详情
简答题 下面的设计有什么问题?如何解决?
  • Square不能以public继承方式继承Rectangle类,否则,Rectangle的所有public成员函数就能被Square类的对象访问,特别地,当用set_width和set_height分别对Square类的对象进行操作时,就可能破坏Square类对象的长、宽相等的特性。
    解决办法是:把Square定义成以protected或private方式从Rectangle继承。为了能对Square类的对象访问Rectangle中定义的area和print,可在Square类中加上对Rectangle类成员的访问控制调整声明:
  • 关注下方微信公众号,在线模考后查看

热门试题