「Effective C++」の条項32:public継承モールドis-a関係を確定する


《Effective C++》
条項32:public継承成形is-a関係を確定する
Public inheritance(公開継承)は「is-a」の関係を意味する.
例は次のとおりです.
class Person{ ... };
class Student : public Person{ ... };
void eat(const Person& p);//      
void study(const Student& s);//         
Person p;//p  
Student s;//s   
eat(p);//   ,  
eat(s);//   ,   
study(s);//   ,    
study(p);//  !!!p    ,        

まとめ:
public継承はis-aを意味する.base classesに適用されるすべてのことは、各derived classオブジェクトもbass classオブジェクトであるため、derived classにも適用されるに違いありません.
2016-11-09 11:40:42