c++.定义一个几何图形基类,其中包含求周长的虚函数。从基类派生三角形、圆、矩形等派生类,并重新定义求周长的虚函数。在主函数中,定义基类指针数组,分别指向派生类对象,用循环语句输出数组中每个对象的周长。
时间: 2024-02-20 17:59:36 浏览: 68
定义抽象基类CShape,由它派生出3个派生类:CCircle、CRectangle、CTriangle,计算图形的周长和面积
好的,以下是代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
class Geometry {
public:
virtual double getPerimeter() = 0;
};
class Triangle : public Geometry {
public:
double a, b, c;
Triangle(double a, double b, double c) {
this->a = a;
this->b = b;
this->c = c;
}
double getPerimeter() {
return a + b + c;
}
};
class Circle : public Geometry {
public:
double r;
Circle(double r) {
this->r = r;
}
double getPerimeter() {
return 2 * M_PI * r;
}
};
class Rectangle : public Geometry {
public:
double a, b;
Rectangle(double a, double b) {
this->a = a;
this->b = b;
}
double getPerimeter() {
return 2 * (a + b);
}
};
int main() {
Geometry* arr[3];
arr[0] = new Triangle(3, 4, 5);
arr[1] = new Circle(2);
arr[2] = new Rectangle(3, 4);
for(int i = 0; i < 3; i++) {
cout << "第" << i+1 << "个图形的周长为:" << arr[i]->getPerimeter() << endl;
}
return 0;
}
```
我们定义了一个 Geometry 类作为基类,其中包含了一个求周长的纯虚函数 `getPerimeter()`。
然后我们派生了三个类:Triangle、Circle、Rectangle,分别代表三角形、圆、矩形,它们都重写了基类中的求周长函数。
在主函数中,我们定义了一个指针数组,分别指向三个派生类对象,然后用循环语句输出每个对象的周长。
输出结果如下:
```
第1个图形的周长为:12
第2个图形的周长为:12.5664
第3个图形的周长为:14
```
阅读全文