4、设计一个Rectangle类。要求:1)包含两个成员变量m_length和m_width,其默认值为1。2)包含成员函数Perimeter()计算长方形的周长,Area()计算长方形面积。3)包含成员函数SetWidth()和GetWidth()用来设置和得到m_width的值,SetLength()和GetLength()用来设置和得到m_length的值。Set…()函数应验证m_length和m_width均为0.0到20.0之间的浮点数。4)编写主函数,测试Rectangle类。
时间: 2023-06-08 12:06:37 浏览: 82
按以下描述和要求建立两个类:基类 Rectangle(矩形类) 和派生类 Cube(正方体)
好的,您的问题是如何设计一个Rectangle类。这个类需要满足以下要求:
1. 包含两个成员变量m_length和m_width,其默认值为1。
2. 包含成员函数Perimeter()计算长方形的周长,Area()计算长方形面积。
3. 包含成员函数SetWidth()和GetWidth()用来设置和得到m_width的值,SetLength()和GetLength()用来设置和得到m_length的值。Set…()函数应验证m_length和m_width均为0.0到20.0之间的浮点数。
4. 编写主函数,测试Rectangle类。
那么,我们可以这样设计这个Rectangle类:
```
class Rectangle {
private:
double m_length;
double m_width;
public:
Rectangle() {
m_length = 1.0;
m_width = 1.0;
}
double GetLength() const {
return m_length;
}
double GetWidth() const {
return m_width;
}
bool SetLength(double len) {
if (len < 0.0 || len > 20.0) {
return false;
}
m_length = len;
return true;
}
bool SetWidth(double wid) {
if (wid < 0.0 || wid > 20.0) {
return false;
}
m_width = wid;
return true;
}
double Perimeter() const {
return 2 * (m_length + m_width);
}
double Area() const {
return m_length * m_width;
}
};
```
在这个设计中,我们使用了两个私有成员变量m_length和m_width来存储长方形的长度和宽度。默认构造函数根据题目要求将它们都初始化为1.0。
接下来,我们定义了四个公有成员函数SetWidth()、GetWidth()、SetLength()和GetLength(),用来设置和获取m_width和m_length的值。为了限制输入的值必须在0.0到20.0之间,我们在这四个函数中进行了边界检查。
最后,我们定义了两个公有成员函数Perimeter()和Area()来计算长方形的周长和面积。这两个函数不需要改变成员变量的值,因此它们都被定义为常量(const)。
至此,我们已经完成了Rectangle类的设计。接下来,就可以写一个主函数来测试这个类了:
阅读全文