You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 12:24:03