Shino_Asada
>>
完整版
本帖最后由 Shino_Asada 于 2015-10-4 13:52 编辑
point p2(p1);
这个调用是没问题的,因为p1是左值
会输出"调用拷贝构造函数"
p2 = g();
g返回右值
point&
非const左值引用不能引用右值,所以不会调用你的拷贝构造函数
CB调用了编译器合成的拷贝构造函数,应该是这个样子的
Point::Point(const Point&);
你也看到了,p2.x和y和g返回的的point一样
拷贝构造函数不应该改变被拷贝对象,所以应该是》》》》const《《《《《 Point&
VS的嘛……233333333嘛~至于f(p2);
f接受的是Point&
所以不会发生拷贝
(小声:引用的底层实现一般是指针哟)