虚函数是使用virtual关键字声明的函数,也是动态多态实现的基础;
可以定义为虚函数的情况:1.析构函数
2.已经被声明为虚函数的基类(父类)成员函数,其派生类(子类)的同名函数自动被定义为虚函数;
不可以定义为虚函数的情况:1、不是类的成员函数;
2、类的静态成员函数不能定义为虚函数(因为静态函数只能在该类里面使用)
3、类的构造函数不能定义为虚函数
创建虚函数的步骤:
1.创建两个类,并且是继承关系(父类和子类);
2、父类中的函数声明virtual函数,也就是虚函数
3、子类继承父类并且重写父类的虚函数(函数名称、类型要一样,只能更改函数内容);
4、通过子类定义的指针或者引用访问父类的对象或者是子类的对象;
示例:
#include <iostream>
using namespace std;
class Hero//英雄类
{
public:
virtual void attack()
{
cout<<"英雄正在进行普通攻击"<<endl;
}
};
class Luban:public Hero//鲁班类 注意:子类可以出现父类没有的函数;用父类指针是无法引用该函数
{