C++ 中虚函数和纯虚函数的区别

c++server side programmingprogramming

下表显示了虚函数和纯虚函数的区别:

虚函数
纯虚函数
虚函数在类中有定义。
纯虚函数没有定义。
声明:virtual函数名称(参数列表) {... .};
声明:virtual funct_name(parameter_list)=0;
没有派生类的概念。
如果一个类至少包含一个纯虚函数,则将其声明为抽象。
如果需要,基类可以重写虚函数。
如果是纯虚函数,派生类必须重写纯虚函数。

虚函数

示例代码

#include <iostream>
using namespace std;
class B {
   public:
      virtual void s() //virtual function {
         cout<<" In Base \n";
      }
};

class D: public B {
   public:
      void s() {
         cout<<"In Derived \n";
      }
};

int main(void) {
   D d; // 类 D 的对象
   B *b= &d;// 指向 d 的 B* 类型指针
   b->s();// 打印"D::s() called"
   return 0;
}

输出

在派生中

纯虚函数

示例代码

#include<iostream>
using namespace std;
class B {
   public:
      virtual void s() = 0; // 纯虚函数
};

class D:public B {
   public:
      void s() {
         cout << " 派生类中的虚函数\n";
      }
};

int main() {
   B *b;
   D dobj; // 类 D 的对象
   b = &dobj;// 指向 dobj 的 B* 类型的指针
   b->s();// 打印"D::s() called"
}

输出

派生类中的虚函数

相关文章