C++重载+=运算符返回类型为什么是test &类型而不是test类型,两种有什么区别?

test &operator+=(const test &t1){ v += t1.v; return *this; }
2025-02-25 19:51:05
推荐回答(1个)
回答1:

想想这个函数调用方式就知道了,应该是t += t1;,先完成t + t1,结果放在t中,也就是说用t调用+=重载的运算符,返回引用其实是其本身,而不会调用拷贝拷贝函数生成临时对象。