1. 前言
虚函数的概念是在类继承中提出的,为了让派生类重新实现基类的方法。当对象指针/引用指向的类型来调用具体的方法。
在基类声明中使用关键字virtual标记可以被重写的方法,派生类中可以使用该关键字,也可以不用(效果一样)。
注意:virtual关键字只需在声明中添加,在源代码中无需添加。这点和static、inline关键字一致。
virtual void printOrg();//基类声明中的虚函数
2. 具体使用
- 如果没有使用关键字virtual,程序将根据引用/指针类型选择方法。
举例说明:
#include <iostream>
using namespace std;
//基类源码
class COriginal
{
public:
COriginal();
~COriginal();
void printOrg();
};
//基类源码
COriginal::COriginal()
{
cout << "Constructor of COriginal" << endl;
}
void COriginal::printOrg()
{
cout << "printOrg of COriginal" << endl;
}
COriginal::~COriginal()
{
cout << "Destruct of COriginal" << endl;
}
//派生类声明
class CDerive :public COriginal
{
public:
CDerive();
~CDerive();
void printOrg();
};
//派生类源码
CDerive::CDerive()
{
cout << "