纯虚函数是一种特殊的虚函数,它的一般格
式如下:
class <类名>
{
virtual<类型><函数名>(<参数表>)=0;
}
.. 带有纯虚函数的类称为抽象类
.. 抽象类是不能定义对象的,在实际中为
了强调一个类是抽象类,可将该类的构
造函数声明为保护的控制权限
.. 抽象类只能作为基类来使用,其纯虚函
数的实现由派生类给出。如果派生类中
没有重定义纯虚函数,则这个派生类仍
然还是一个抽象类
//抽象类
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
class Vehicle{
protected:
float speed;
int total;
public:
Vehicle(float speed,int total){
this->speed = speed;
this->total = total;
cout<<"in Vehicle construct"<<endl;
}
Vehicle(const Vehicle & vv){
cout<<"in Vehicle copy"<<endl;
}
virtual void ShowMember() = 0;//纯虚函数的定义
virtual ~Vehicle(){}
};
class Car:public Vehicle{
protected:
int aird;
public:
Car(int aird,float speed,int total):Vehicle(speed,total){
this->aird = aird;
cout<<"in car construct"<<endl;
}
Car(Car & cc):Vehicle(cc){
this->aird = cc.aird;
cout<<"in Car copy "<<endl;
}
virtual void ShowMember(){ //派生类成员函数重载
cout<<aird<<"|"<<speed<<"|"<<total<<endl;
}
};
int main()
{
//Vehicle a(100,4);//错误,抽象类不能创建对象
Car b(250,150,4);
cout<<"========"<<endl;
Car c = b;
b.ShowMember();
return 0;
}