[bo]以下是引用 [un]newyj[/un] 在 2008-4-28 21:40 的发言:[/bo]
接口继承是纯虚函数为基类,实现继承是非纯虚函数为基类?
不知道 这样理解对不对
缺省实现继承 和 强制性实现继承 各是什么意思?
c++里没有interface这个概念。
有纯虚函数的基类是抽象类,按你的分类标准,c++里继承分为继承于一个抽象类和继承于一个非抽象类(具体类)。
缺省实现继承:基类中的非纯虚函数,也就是一般的虚函数。
virtual void fun(){
//your implementation
}
这样的函数是必须实现的,派生类可以去重写(override)这个函数,但是调用时如果子类没又重写它,也不会出错,因为基类有默认的实现。
强制性实现继承:基类中的纯虚函数。
virtual void fun() = 0;
这样的一个函数是没有实现的,所以你要想调用它,那么必须在子类中重写(override)它,否则就会调用出错。所以这里的实现是强制性的。