设计一个三角形类 Triangle,包含三角形三条边长的私有数据成员,另有 一个重载运算符“+”,以实现求两个三角形对象的面积之和。用c++实现
时间: 2024-02-11 11:05:03 浏览: 104
好的,下面是使用 C++ 实现的 Triangle 类:
```cpp
#include <cmath>
class Triangle {
private:
double a, b, c; // 三角形三条边长
public:
Triangle(double A, double B, double C): a(A), b(B), c(C) {} // 构造函数
double area() const { // 计算面积
double p = (a + b + c) / 2;
return sqrt(p * (p - a) * (p - b) * (p - c));
}
Triangle operator+(const Triangle& t) const { // 重载运算符“+”
double A = a + t.a;
double B = b + t.b;
double C = c + t.c;
return Triangle(A, B, C);
}
};
```
我们可以在 main 函数中测试 Triangle 类的功能:
```cpp
#include <iostream>
using namespace std;
int main() {
Triangle t1(3, 4, 5);
Triangle t2(5, 12, 13);
Triangle t3 = t1 + t2;
cout << "Triangle 1 area: " << t1.area() << endl;
cout << "Triangle 2 area: " << t2.area() << endl;
cout << "Triangle 3 area: " << t3.area() << endl;
return 0;
}
```
输出:
```
Triangle 1 area: 6
Triangle 2 area: 30
Triangle 3 area: 48
```
在 main 函数中,我们创建了两个 Triangle 对象 t1 和 t2,它们分别表示一个 3-4-5 的直角三角形和一个 5-12-13 的直角三角形。然后我们使用重载的加号运算符将它们相加,得到了一个新的 Triangle 对象 t3,它的三条边分别是 t1 和 t2 对应边之和。最后我们分别输出了三个三角形的面积。
阅读全文