定义一个矩形类Rectangle,有长和宽两个属性,默认的属性值长和宽均为0(缺省构造函数)。要求能够计算矩形的周长和面积,能够用一个矩形复制另外一个矩形(拷贝构造函数)。 主函数中,自行测试类的实现是否正确,包括对缺省构造函数、带参数构造函数和拷贝构造函数的测试。
时间: 2024-03-11 07:18:05 浏览: 61
回答:好的,这是一个关于面向对象编程的问题,我可以回答。定义一个矩形类Rectangle,可以使用以下代码:
```
class Rectangle {
private:
double length;
double width;
public:
Rectangle(): length(0), width(0) {} // 缺省构造函数
Rectangle(double l, double w): length(l), width(w) {} // 带参数构造函数
double getLength() { return length; }
double getWidth() { return width; }
double getPerimeter() { return 2 * (length + width); } // 计算周长
double getArea() { return length * width; } // 计算面积
Rectangle(const Rectangle& other): length(other.length), width(other.width) {} // 拷贝构造函数
};
```
在主函数中,可以进行如下测试:
```
int main() {
Rectangle r1; // 测试缺省构造函数
Rectangle r2(3, 4); // 测试带参数构造函数
Rectangle r3 = r2; // 测试拷贝构造函数
cout << "r1 perimeter: " << r1.getPerimeter() << endl; // 输出 r1 的周长和面积
cout << "r1 area: " << r1.getArea() << endl;
cout << "r2 perimeter: " << r2.getPerimeter() << endl; // 输出 r2 的周长和面积
cout << "r2 area: " << r2.getArea() << endl;
cout << "r3 perimeter: " << r3.getPerimeter() << endl; // 输出 r3 的周长和面积
cout << "r3 area: " << r3.getArea() << endl;
return 0;
}
```
输出结果如下:
```
r1 perimeter: 0
r1 area: 0
r2 perimeter: 14
r2 area: 12
r3 perimeter: 14
r3 area: 12
```
这说明我们定义的矩形类可以正常工作。
阅读全文