定义一个函数为纯虚函数,才代表函数没有被实现。定义它是为了实现一个接口,起到一个规范的作用,规范继承这个。若一个类中至少有一个纯虚函数,则该类称为抽象类。抽象类只能用作其他类的基类,不能建立对象。抽象类不能用作参数类型、函数返回类型或显式转换的类型,但是可以声明抽象类的指针和引用。从基类继承来的纯虚函数,在派生类中仍是虚函数。
可以通过以下的例子简单了解下:
#include <iostream>
using namespace std;
class num
{
private:
int val;
public:
num(int i){val=i;}
virtual void show()=0;//纯虚函数
int get_val(){return val;}
};
class hextype:public num
{
public:
hextype(int i):num(i)
{}
void show(){cout<<hex<<" "<<get_val()<<endl;}//按照十六进制输出
};
class dectype:public num
{
public:
dectype(int i):num(i){}
void show(){cout<<dec<<get_val()<<endl;}//仍按十进制输出
};
void fun(num &n)
{n.show();}
void main()
{
dectype d(50);//输出十进制数
fun(d);//d.show
hextype h(19);//16进制
fun(h);//h.show();
}
//cout<<hex<<i<<endl; //输出十六进制数
//cout<<oct<<i<<endl; //输出八进制数
//cout<<dec<<i<<endl; //输出十进制数