c++中 虚函数与纯虚函数的区别是什么?

虚函数与纯虚函数 在他们的子类中都可以被重写。它们的区别是:
(1)纯虚函数只有定义,没有实现;而虚函数既有定义,也有实现的代码。
纯虚函数一般没有代码实现部分,如
virtual void print() = 0;
而一般虚函数必须要有代码的实现部分,否则会出现函数未定义的错误。
virtual void print()
{ printf("This is virtual function\n"); }
(2)包含纯虚函数的类不能定义其对象,而包含虚函数的则可以。

纯虚函数(pure virtual) 
  C++中包含纯虚函数的类,被称为是“抽象类”。抽象类不能使用new出对象,只有实现了这个纯虚函数的子类才能new出对象。 
  C++中的纯虚函数更像是“只提供申明,没有实现”,是对子类的约束,是“接口继承”。 
  C++中的纯虚函数也是一种“运行时多态”。 
 

猜你喜欢

转载自blog.csdn.net/usstmiracle/article/details/83068733