C++对象数组赋初值报错的问题

隐式提供的拷贝构造函数:test::test(test const\u0026amp; p)你自己写的拷贝构造函数:test::test(test\u0026amp; p)普通引用的绑定与左值右值的关系是这样的: | lvalue | rvalue---------+----------+---------- T\u0026amp; | x | -T const\u0026amp; | x | xtest t = { test(1), test(2), test(3) };数组用这种方式初始化时,每一个元素都由初始化列表中的对应元素拷贝构造而来。而初始化列表中临时构造的 test(1) 等人属于右值。所以按照上面的规则,无法被非 const 的普通引用 test\u0026amp; 绑定,却可以被 test const\u0026amp; 绑定。
■网友
你都知道是复制构造函数了,你却不知道什么时候会用?“复制构造函数”应该叫拷贝构造函数,在return和非引用类传值的函数时都会被调用来生成拷贝后的副本。拷贝构造函数应该这样写test(const test \u0026amp;p):num(p.num){cout\u0026lt;\u0026lt;"Copy Constructor Called"\u0026lt;\u0026lt;endl;}注意const


    推荐阅读