Effective C++ 条款32 确定你的public继承塑模出is-a关系

1. public继承意味着"is-a"(是一个)关系,是接口的完全继承(不一定是接口实现的完全继承).例如B继承自A,如果采用public继承,那么意味着B是A的一种,因此A可以进行的操作B同样也可以进行(尽管实现可能不同).

2. public继承的is-a含义(基类可以进行的操作派生类同样可以进行)与现实生活中的is-a含义可能有些许不同.例如,在生活中,正方形无疑是矩形的一种,因此可以认为是is-a关系;然而如果用public继承的is-a含义来解释,正方形可能就不可以public继承自矩形,因为对于一个矩形,我们可以独立地改变高或宽,然而对于正方形,这种操作无法实现.因此对于继承的使用,要为直觉"添加新的洞察力".

posted @ 2015-09-09 11:40  Reasno  阅读(214)  评论(0编辑  收藏  举报