纯虚函数
定义
纯虚函数
是在基类
中声明的虚函数
,它在基类中没有定义
,但要求任何派生类(继承类)
都要定义自己的实现方法
。在基类中实现
纯虚函数的方法是在函数原型后加=0
。
定义纯虚函数的目的在于,使派生类仅仅只是继承函数的接口。
格式
virtual <函数返回类型> 函数名 (参数表) = 0;
例子
class A
{
public:
virtual void out1(string s)=0;
virtual void out2(string s)
{
cout<<"A(out2):"<<s<<endl;
}
};
虚函素
定义
在某基类中声明为 virtual
并在一个或多个派生类
中被重新定义
的成员函数
格式
virtual <函数返回类型> 函数名 (参数表)
{
函数体;
};
实现多态性,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数
例子
class A
{
public:
virtual void out2(string s)
{
cout<<"A(out2):"<<s<<endl;
}
};
混合例子:
#include <iostream>
using namespace std;
//基类Base
class Base
{
public:
//普通函数
void f1(int x)
{
cout << "Base::f1(int) " << x << endl;
}
//虚函数
virtual void f2(int x)
{
cout << "Base::f2(void)"<< x << endl;
}
//纯虚函数,将由子类实现
virtual void f3(int x)=0;
};
int main(int argc, char **argv)
{
Derived derived;
Base *pderived = &derived;
pderived->f(1);
pderived->f(2.0f);//注意不指明f的话默认是double
pderived->g(3.0);
}