设计一个三角形类,拥有三个私有成员变量,三角形的三个边。利用构造函数对三角形的三个边进行初始化,并设计计算三角形周长和面积的成员函数,在主函数中测试这些成员函数,并输出三角形的周长和面积。
时间: 2024-09-20 07:09:35 浏览: 115
设计一个名为`Triangle`的类,我们可以这样做:
```cpp
#include <iostream>
class Triangle {
private:
double side1;
double side2;
double side3; // 三角形的三个边
public:
// 构造函数,用于初始化三角形的三边
Triangle(double a, double b, double c) {
if (a + b > c && a + c > b && b + c > a) { // 验证三条边是否能构成三角形
side1 = a;
side2 = b;
side3 = c;
} else {
std::cout << "Invalid sides for a triangle." << std::endl;
}
}
// 计算并返回周长的成员函数
double getPerimeter() const {
return side1 + side2 + side3;
}
// 根据海伦公式计算面积的成员函数
double getArea() const {
double semi_perimeter = getPerimeter() / 2;
return sqrt(semi_perimeter * (semi_perimeter - side1) *
(semi_perimeter - side2) * (semi_perimeter - side3));
}
};
int main() {
Triangle t(3, 4, 5); // 测试构造函数和成员函数,这里假设3, 4, 5是一组合法的三角形边长
std::cout << "Triangle perimeter: " << t.getPerimeter() << std::endl;
std::cout << "Triangle area: " << t.getArea() << std::endl;
return 0;
}
```
在这个例子中,我们首先创建了一个`Triangle`类,它有三个私有成员`side1`, `side2`, 和 `side3`,代表三角形的三边。构造函数接收这三个边作为参数,并验证它们能否组成有效的三角形。然后,我们定义了两个公共成员函数:`getPerimeter()`用于获取周长,`getArea()`根据海伦公式计算面积。在`main()`函数中,我们创建了一个`Triangle`实例,并打印出它的周长和面积。
阅读全文