虚函数是基类的非静态成员函数,其访问权限可以是protected或public,在基类的类定义中定义虚函数的形式:
virtual 函数返回值类型 虚函数名 (形参表)
{
函数体
}
虚函数的主要作用是建立抽象模型,从而达到扩展系统的目的,虚函数扩展了派生类对象中隐藏基类函数的概念。
纯虚函数:
class 类名
{
virtual 类型 函数名 (形参表)=0;
。。。。
};
纯虚函数是虚函数的一个子集,用于抽象类,含有纯虚函数的类就是抽象类,它不能生成对象。
虚函数可以实现方法 纯虚函数没有函数体,也就是不能实现方法,只能给后面的派生类供声明,后面跟着=0;#include<cstdlib> #include<iostream> using namespace std; class A//定义基类 { public: A(){}; virtual ~A(){}; void f1() { cout<<"hua"<<endl; } virtual void f2() { cout<<"hua"<<endl; } virtual void f3()=0;//纯虚函数 }; class B:public A //定义子类 { public: B(){}; virtual ~B(){}; void f1()//重载 { cout<<"kjkj"<<endl; } void f2() { cout<<"sdf"<<endl; } void f3() { cout<<"sdf33"<<endl; } }; int main(int argc,char *argv[]) { A *m_j=new B(); m_j->f1();//调用A类中的f1(); m_j->f2();//调用B的f2() m_j->f3();//调用B中的f3() delete m_j; return 0; }