使用了纯虚函数的类为一个抽象类(个人对抽象类的理解为类中含有未进行定义的函数(纯虚函数)的类被称为抽象类),纯虚函数只能用于继承接口,实现一般在子类中需要时实现,还有很重要的一点是抽象类无法生成对象。
有进行行为声明的纯虚函数叫虚函数(不知道这样说对不对)
class CPerson
{
CPerson();
~CPerson();
public:
virtual void Move() = 0;//纯虚函数的声明为带有virtual关键字并且没有进行实际的函数行为定义,并且要将该函数初始化为0;
virtual void Eat(){
//函数声明部分
}
}
class CMan: public CPerson
{
public:
CMan();
~CMan();
virtual void Move(){
cout << “男人移动” << endl;//重载
}
virtual void Eat(){
cout << “男人吃东西” << endl;
}
private:
};
CPerson *p = new CMan();//如果创建的对象
//CPerson *p1 = new CPerson();//报错:抽象类无法进行创建对象;
int _tmain(int argc, _TCHAR* argv[])
{
p->Move();//输出的是派生类的Move函数
system(“pause”);
return 0;
}