定义一个rctangle类,其中包含构造函数、拷贝构造函数、输出长方形长和宽的成员函数,以及两个私有数据成员legt山h和wdh。主函数定义对象pl,调用普通的构造函数,初始化为30,40,并输出,定义对象p2,用代入法调用拷贝韵造函数,使得p2初始化印1长和宽的两倍,并输出。定义对象p3,用赋值法调用拷贝构造函数,使得p2初始化p1长和宽的两倍,并输出,输入输出说明:输出:using normal constructor1=30w=40using copy c constructor1=60=80using copy constructor1=60w=80
时间: 2024-03-06 22:49:11 浏览: 118
好的,这是一个C++编程题,需要你编写代码来实现要求的功能。下面是代码参考:
```c++
#include <iostream>
using namespace std;
class Rectangle {
private:
int legth, width;
public:
Rectangle(int l = 0, int w = 0) {
legth = l;
width = w;
}
Rectangle(const Rectangle& r) {
legth = r.legth * 2;
width = r.width * 2;
}
void output() {
cout << "1=" << legth << "w=" << width << endl;
}
Rectangle& operator=(const Rectangle& r) {
legth = r.legth * 2;
width = r.width * 2;
return *this;
}
};
int main() {
Rectangle p1(30, 40);
p1.output();
Rectangle p2 = p1;
p2.output();
Rectangle p3;
p3 = p1;
p3.output();
return 0;
}
```
输出结果:
```
1=30w=40
1=60w=80
1=60w=80
```
说明:
- Rectangle类定义了构造函数、拷贝构造函数和赋值运算符重载函数,以及输出长方形长和宽的成员函数。
- 在主函数中,先创建一个p1对象,通过调用普通的构造函数初始化为30,40,并输出。
- 然后,创建一个p2对象,通过调用拷贝构造函数,使得p2初始化为p1长和宽的两倍,并输出。
- 最后,创建一个p3对象,使用赋值运算符重载函数,使得p3初始化为p1长和宽的两倍,并输出。
阅读全文