基础
- C++中没有抽象类的概念
- C++中通过纯虚函数实现抽象类
- 纯虚函数只是定义原型的成员函数
- 一个类中存在纯虚函数就成为了抽象类
纯虚函数语法
class Shape
{public:virtual double area() =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;
}