C++新建一个基类 shape 类是一个表示形状的抽象类,getarea( )为求图形面积的函数。请从shape 类派出矩形类(rectangle)、三角形类(triangle)、圆类 (circles) 、并给出具体的求面积函数
时间: 2024-05-03 18:17:24 浏览: 113
设计基类点类(Point)、直接派生类圆类(Circle)、间接派生类圆柱体类(Cylinder),将求面积的函数(area)声明成虚函数,并在主函数实现虚函数
下面是 C++ 实现代码:
```cpp
#include<iostream>
using namespace std;
class shape{
public:
virtual double getarea()=0; // 纯虚函数
};
class rectangle:public shape{
public:
double width, height;
rectangle(double w, double h):width(w), height(h){}
double getarea(){
return width * height;
}
};
class triangle:public shape{
public:
double base, height;
triangle(double b, double h):base(b), height(h){}
double getarea(){
return 0.5 * base * height;
}
};
class circles:public shape{
public:
double radius;
circles(double r):radius(r){}
double getarea(){
return 3.14 * radius * radius;
}
};
int main(){
rectangle r(10, 20);
triangle t(10, 20);
circles c(5);
cout<<"Rectangle area: "<<r.getarea()<<endl;
cout<<"Triangle area: "<<t.getarea()<<endl;
cout<<"Circle area: "<<c.getarea()<<endl;
return 0;
}
```
在这个例子中,`shape` 类是一个抽象类,它包含了一个纯虚函数 `getarea()`,派生类必须重写这个函数。`rectangle`、`triangle`、`circles` 分别是 `shape` 类的派生类,它们实现了自己的求面积函数。在 `main()` 函数中,我们使用每个类的对象来计算它们的面积,并输出结果。
阅读全文