目录
接口继承和实现继承不同。
在public继承之下,derived classed 总是继承base class的接口。
-
纯虚函数 pure virtual
virtual void draw() const = 0;
2个特性:它们必须被继承了它们的子类的具体class重新声明;而且它们在抽象class中通常没有定义。
目的:为了让derived classes 只继承函数接口。
-
简朴的虚函数/非纯虚函数 inpure virtual
virtual void error(const std::string& msg);
目的:让让derived classes继承该函数的接口和缺省实现。
你必须支持一个error函数,但如果你不想自己写一个,可以使用父类提供的缺省版本。
-
非虚函数 non-virtual
int objectID() const;
具体指定接口继承以及强制性实现继承(这里是因为is a的特性,你既然继承了它,也符合设计模式的里氏替换原则)