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

C++中return *this与类引用:示例中返回this指针的含义是什么?

理解C++示例中return *this的作用

先明确几个核心概念:

  • this指针:在类的成员函数内部,this是一个隐含的指针,指向调用该函数的当前对象实例。比如你示例里的obj.setNum(10),setNum函数里的this就指向obj这个对象。
  • return *this:这里函数的返回类型是MyClass&(类的引用),所以返回的是this指针指向的对象本身的引用,而非对象副本或指针。

结合示例代码拆解

你的代码里,setNum和displayNum都返回*this,核心目的是实现链式调用:

  1. 执行obj.setNum(10)时,this->num = num把10赋值给obj的私有成员num,随后return *this返回obj的引用——也就是说,obj.setNum(10)这个表达式的结果就是obj本身的引用。
  2. 紧接着调用.displayNum(),本质是在obj的引用上执行该函数,因此会输出obj的num值:Num: 10。

为什么返回引用而非其他?

如果函数返回MyClass(值返回),return *this会创建当前对象的副本,后续链式调用就会在副本上操作,而非原对象obj,这通常不是我们想要的效果。返回引用既能保证操作原对象,又能避免对象拷贝带来的性能开销。

总结

在这个示例中,return *this的作用是让成员函数返回当前对象的引用,从而支持多个成员函数的链式调用,让代码更简洁紧凑。

内容的提问来源于stack exchange,提问作者Mohammed Mogeab Ahmed Al-hajj

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 05:05:10