为什么必须通过引用传递复制构造函数的参数?
我遇到了一个测验,说下面第18行中的代码格式不正确,因为"当需要复制的其中一个成员是一个引用时,使用隐式定义的赋值运算符是不正确的."
我无法理解.为什么参考无法复制?为什么16号线合法?第16行与第18行非常相似,复制构造函数仍然需要复制,对吧?
1 #include <iostream>
2
3 struct A
4 {
5 A(int& var) : r(var) {}
6
7 int &r;
8 };
9
10 int main(int argc, char** argv)
11 {
12 int x = 23;
13
14 A a1(x);
15
16 A a2 = a1;
17
18 a2 = a1;
19
20 return 0;
21 }
Run Code Online (Sandbox Code Playgroud)