:给以下代码中的Worker类添加一个复制构造函数,完成对象的复制功能。 Class Worker{ public: Worker(int n,string name1,float s); void show( ); private: int num; string name; float salary; }; Worker::Worker(int n,string name1,float s) { num = n; name=name1; salary = s; } void Worker::show( ) { cout<<”num:”<<num<<endl; cout<<”name:”<<name<<endl; cout<<”salary:”<<salary<<endl; } int main( ) { Worker worker1(1,”张三”,4000);//定义对象时直接初始化 work1.show( ); return 0; }
时间: 2024-03-19 13:44:48 浏览: 94
C 语言程序设计:第3讲 复制构造函数.ppt
好的,下面是添加复制构造函数后的Worker类的代码:
```c++
#include <iostream>
using namespace std;
class Worker{
public:
Worker(int n,string name1,float s);
Worker(const Worker& w); // 复制构造函数
void show( );
private:
int num;
string name;
float salary;
};
Worker::Worker(int n,string name1,float s) {
num = n;
name=name1;
salary = s;
}
// 复制构造函数的实现
Worker::Worker(const Worker& w) {
num = w.num;
name = w.name;
salary = w.salary;
}
void Worker::show( ) {
cout<<"num:"<<num<<endl;
cout<<"name:"<<name<<endl;
cout<<"salary:"<<salary<<endl;
}
int main( ) {
Worker worker1(1,"张三",4000);//定义对象时直接初始化
worker1.show( );
// 使用复制构造函数复制对象
Worker worker2(worker1);
worker2.show();
return 0;
}
```
这里我们添加了一个名为`Worker::Worker(const Worker& w)`的复制构造函数,它接受一个Worker对象作为参数,用于复制对象。在实现中,我们将传入的对象的num、name、salary属性分别复制给当前对象的对应属性即可。在`main()`函数中,我们先定义了一个Worker对象`worker1`,并输出了它的信息。然后使用复制构造函数将`worker1`复制给了`worker2`,最后再输出一遍`worker2`的信息,可以看到它与`worker1`一模一样。
阅读全文