基础
- 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;
}