一、“is-a”的概念 以C++进行面向对象编程,最重要的一个规则是:public inheritance(公开继承)意味“is-1”(是一种)的关系 如果你令class D以public形式继承class B,你便是告诉编译器: 每一个类型为D的对象同时也是一个类型为B的对象。反之不是 B对象可使用的地方,D对象一样可以使用。反之不是 演示案例 下...
总之,如果将两个类A、B,想要塑模成公共继承关系,B继承自A:那就必须做到A的所有行为都可以作用在B上。这才是能够塑模成is-a关系的关键。
条款32:确定你的public继承塑模出is-a的关系 Make sure public inheritance models “is –a “ 如果令clsss D 以public的形式继承class B,你便是告诉编译器说,每一个类型为D的对象同时也是一个类型为B的对象,反之不成立。你的意思是B比D表现出更一般化的概念,而D比B表现出更特殊化的概念。你主张"B"对象...
public继承意味is-a。适用于base classes身上的每一件事情一定也适用于derived classes身上,因为每一个derived class对象也都是一个bass class 对象。
条款32:确定你的public继承塑模出is-a关系 Public inheritance(公开继承)意味“is-a”的关系。 例子如下: 1 2 3 4 5 6 7 8 9 10 classPerson{ ... }; classStudent :publicPerson{ ... }; voideat(constPerson& p);//任何人都会吃 voidstudy(constStudent& s);//只有学生才到校学习 ...
1. public继承意味着"is-a"(是一个)关系,是接口的完全继承(不一定是接口实现的完全继承).例如B继承自A,如果采用public继承,那么意味着B是A的一种,因此A可以进行的操作B同样也可以进行(尽管实现可能不同). 2. public继承的is-a含义(基类可以进行的操作派生类同样可以进行)与现实生活中的is-a含义可能有些许不...
Effective C++ ---条款32:确定你的public继承塑模出is-a关系 “public继承”意味is-a。适用于base classes身上的每一件事情一定也适用于derived classes身上,因为每一个derive class对象也都是一个base class对象。
NOTE : 1."public继承"意味is-a。适用于base classes 身上的每一件事一定也适用于derived classes身上,因为每一个derived class 对象也都是一个 base class 对象。
条款32:确定你的public继承塑模出is-a关系 --- 常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。 昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。