在复制构造函数中表示什么?

pro*_*eve 0 c++ constructor copy-constructor

#include <iostream>

using namespace std;

class tester {
public:
int a;
tester( int x ) {
    a = x;
}

tester( tester &t ) {
    cout << t.a;
}
};

int main() {
 tester t(10);
 tester t_1(t);
}

output : 10
Run Code Online (Sandbox Code Playgroud)

在复制构造函数的定义中t引用了什么?从main传入t参数时t_1,它的地址被存储在&t复制构造函数的表单中.什么t.a意思?

Gra*_*and 5

它是对现有对象的引用,该对象被复制以构造新对象.期望复制构造函数t根据需要读取相关字段.

在您的示例中,您可能希望a像这样复制字段:

tester( tester &t ) {
   cout << t.a;
   a = t.a;
}
Run Code Online (Sandbox Code Playgroud)