C++重载运算符的传参类型与返回对象是否同源的问题咨询
你给出的C++代码如下:
class myclass{ myclass& dosomething(){ // do something here return *this; } myclass& operator<<(myclass &mc){ return mc; } }; int main(){ myclass myobject; myobject << myobject.dosomething(); }
针对你要确认的两个问题,答案如下:
- 你重载的
<<运算符的入参是引用类型。参数mc的类型声明为myclass &,属于C++左值引用,调用该运算符时不会拷贝传入的对象,会直接绑定到传入的myclass实例上。 - 直接返回入参
mc的操作,确实返回了和入参完全相同的对象。该运算符的返回值类型是myclass&,返回的是直接绑定到mc对应实例的引用,全程没有触发对象拷贝逻辑,最终返回的就是你传入的那个对象本身。
内容的提问来源于stack exchange,提问作者KansaiRobot
相关产品推荐
相关产品推荐

