在34条款中Meyers介绍了C++中是如何来做接口继承和实现继承的。
先让我们记住几个关键点吧。
- 为了让继承类只继承函数接口,可以在基类中声明一个纯虚函数。
class Shape{
public:
virtual void draw() const = 0;
};
- 为了让继承类既继承函数接口,又继承缺省实现,可以在基类中声明一个虚函数。但是要注意,继承缺省实现有可能会造成危险(后续有机会举例)。
- 为了让继承类继承函数接口和一份强制性实现,可以在基类中声明一个非虚函数。(个人表示疑惑,原因是继承类可以名字覆盖,那么非虚函数和虚函数一样都是可以做实现继承吧?)