设计一个基类Base,其作用是计算一个图形的面积,它只有一个公有的函数成员虚函数area。再从Base类公有派生一个三角形类Triangle和一个圆类Circle,在类Triangle和类Circle中分别定义自己的area函数,用于计算各自的面积。在主函数中设计一个Base类的对象指针,分别指向类Triangle和类Circle的对象,调用各自的area函数显示相应对象的面积。 代码:
时间: 2024-02-21 22:02:01 浏览: 195
下面是实现上述要求的C++代码:
```
#include <iostream>
using namespace std;
class Base {
public:
virtual double area() = 0;
};
class Triangle : public Base {
private:
double base;
double height;
public:
Triangle(double b, double h) {
base = b;
height = h;
}
double area() {
return 0.5 * base * height;
}
};
class Circle : public Base {
private:
double radius;
public:
Circle(double r) {
radius = r;
}
double area() {
return 3.14 * radius * radius;
}
};
int main() {
Base *ptr;
Triangle tri(10, 5);
Circle cir(3);
ptr = &tri;
cout << "Triangle Area: " << ptr->area() << endl;
ptr = ○
cout << "Circle Area: " << ptr->area() << endl;
return 0;
}
```
在上述代码中,Base类是一个抽象类,其中定义了一个纯虚函数`area()`,它没有具体实现,需要在派生类中进行实现。Triangle类和Circle类都公有继承自Base类,并分别实现了自己的`area()`函数用于计算各自的面积。在主函数中,我们定义了一个Base类的指针`ptr`,分别指向Triangle对象和Circle对象,调用各自的`area()`函数显示相应对象的面积。
阅读全文