基类:图形类(可以有圆、三角、长方形等等)
派生类:圆类、三角类
绘制图形方法:根据/传入的不同的类/绘制出/不同的图形
#include <iostream>
using namespace std;
// 图形抽象类(基类
class Shape {// 抽象类(至少拥有一个纯虚函数
public:
virtual void Draw() = 0;// 纯虚函数
};
// 圆类继承图形类
class Circle :public Shape {
public:
void Draw() {// 这个函数在基类中是虚函数,在这里也是虚函数
cout<<"绘制圆" << endl;
}
};
// 三角形类继承图形抽象类
class Triangle :public Shape {
public:
void Draw() {
cout<<"绘制三角形" << endl;
}
};
// 多态测试 参数是指针类型或引用类型
void drawShape(Shape* s) {// (Shape &s)
s->Draw();
//s->Draw();
}
int main() {
// 同一个函数根据参数的不同类型体现出不同的结果
cout<<"--------------------" << endl;
Circle c;
drawShape(&c);// 绘制圆
cout << "--------------------" << endl;
Triangle t;
drawShape(&t);// 绘制三角形
cout << "--------------------" << endl;
}