基础 C++中没有抽象类的概念C++中通过纯虚函数实现抽象类纯虚函数只是定义原型的成员函数一个类中存在纯虚函数就成为了抽象类 纯虚函数语法 class Shape {public:virtual double area() =0;// =0 用于告诉编译器当前是声明纯虚函数,因此不需要定义函数体 }; 抽象类与纯虚函数 1. 抽象类只能做基类被继承 2. 派生类必须实现纯虚函数的具体功能 3. 纯虚函数被实现后成为虚函数 4. 若子类没有实现纯虚函数,则子类成为抽象类 完整代码 class Shape {public:virtual double area() =0; }; class Rect :public Shape {int ma;int mb;public:Rect(int a,int b){ma = a;mb = b;}double area(){ return ma * mb;} }; class Circle :public Shape {int mr;public:Circle(int r){mr = r;}double area(){ return 3.14 * mr * mr;} };void area(Shape* p) {double r = p->area();cout << "area = " << r << endl; } int main() {Rect rect(1,2);Circle cle(10);area(&rect);area(&cle);return 0; }