《Effective C++》

条款34:区分接口继承和实现继承

Public继承由两部分组成

函数接口继承

函数实现继承

 

三种可能面对的继承

derived class 只继承成员函数的接口

derived class 同时继承函数的接口和实现,但又希望能够覆写它们所继承的实现

derived class 同时继承函数的接口和实现,但不允许覆写任何东西

 

总结:

接口继承和实现继承不同。在public继承下,derived classes 总是继承base class 的接口。

Pure virtual 函数只具体指定接口继承。

简朴的impure virtual 函数具体指定接口继承及缺省实现继承。

Non-virtual 函数具体指定接口继承以及强制性实现继承。