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
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP