引入
抽象基类:基类中加入至少一个纯虚函数的基类称为抽象基类。
相比一般虚函数来讲纯虚函数的不同就在虚函数后面多加的‘=0’。
继承抽象类需实现其内部所有的纯虚函数。
基类相当于框架,各子类依据框架和自身要求进行各自的实现。
案例
基类
class AbstractDrinking {
public:
//煮茶
virtual void boil() = 0;
//泡茶
virtual void brow() = 0;
//倒入杯子
virtual void pourInCup() = 0;
//加辅料
virtual void putSomething() = 0;
void makeDrink() {
boil();
brow();
pourInCup();
putSomething();
}
};
各子类分别实现基类所有的纯虚函数
class Coffee :public AbstractDrinking {
public:
virtual void boil(){
cout << "烧水" << endl;
}
virtual void brow() {
cout << "泡咖啡" << endl;
}
virtual void pourInCup() {
cout << "倒入杯子" << endl;
}
virtual void putSomething() {
cout << "加糖" << endl;
}
};
class Tea :public AbstractDrinking {
public:
virtual void boil() {
cout << "烧水" << endl;
}
virtual void brow() {
cout << "泡茶" << endl;
}
virtual void pourInCup() {
cout << "倒茶" << endl;
}
virtual void putSomething() {
cout << "加牛奶" << endl;
}
};