C++ 中的虚函数和纯虚函数之间的区别
下表展示了虚函数和纯虚函数之间的区别
虚函数 | 纯虚函数 |
---|---|
虚函数在其类中具有定义。 | 纯虚函数没有定义。 |
声明:virtual funct_name(parameter_list) {. . . . .}; | 声明:virtual funct_name(parameter_list)=0; |
它没有派生类的概念。 | 如果一个类至少包含一个纯虚函数,那么它被声明为抽象函数。 |
如果需要,则基类可以覆盖虚函数。 | 在纯虚函数的情况下,派生类一定要覆盖该纯虚函数。 |
virtual function
示例代码
#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; // An object of class D B *b= &d;// A pointer of type B* pointing to d b->s();// prints"D::s() called" return 0; }
输出
In Derived
pure virtual function
示例代码
#include<iostream> using namespace std; class B { public: virtual void s() = 0; // Pure Virtual Function }; class D:public B { public: void s() { cout << " Virtual Function in Derived class\n"; } }; int main() { B *b; D dobj; // An object of class D b = &dobj;// A pointer of type B* pointing to dobj b->s();// prints"D::s() called" }
输出
Virtual Function in Derived class
广告