1)设计一个CRectangle类,要求如下所述: (1) 该类中的私有成员存放长和宽,并设置它们的默认值为1; (2) 通过成员函数设置其长和宽,并确保长和宽都在(0,50)范围内; (3) 求周长Perimeter (4) 设计main()函数验证上述类的使用。
时间: 2024-10-09 16:01:46 浏览: 26
在C++中,我们可以创建一个名为`CRectangle`的类,满足你的需求。以下是这个类的设计:
```cpp
class CRectangle {
private:
double length = 1; // 默认长度为1
double width = 1; // 默认宽度为1
public:
// 构造函数初始化成员变量
CRectangle(double init_length = 1, double init_width = 1) {
setLength(init_length);
setWidth(init_width);
}
// 设置并检查长和宽是否在(0, 50)范围内
void setLength(double new_length) {
if (new_length < 0 || new_length > 50) {
throw std::invalid_argument("Length must be between 0 and 50");
}
length = new_length;
}
void setWidth(double new_width) {
if (new_width < 0 || new_width > 50) {
throw std::invalid_argument("Width must be between 0 and 50");
}
width = new_width;
}
// 计算周长
double perimeter() const {
return 2 * (length + width);
}
// 主函数示例,用于测试类的使用
static void mainFunction() {
try {
CRectangle rect(10, 20); // 创建矩形实例
std::cout << "Perimeter: " << rect.perimeter() << std::endl;
// 非法尝试超出范围
rect.setLength(60); // 抛出异常
} catch (const std::invalid_argument& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
}
};
```
在这个类中,我们定义了两个私有成员`length`和`width`,以及相应的公共方法来设置它们的值和计算周长。`mainFunction`是一个静态函数,展示了如何创建矩形对象并调用其方法。