C++中return *this与类引用:示例中返回this指针的含义是什么?
理解C++示例中return *this的作用
先明确几个核心概念:
this指针:在类的成员函数内部,this是一个隐含的指针,指向调用该函数的当前对象实例。比如你示例里的obj.setNum(10),setNum函数里的this就指向obj这个对象。return *this:这里函数的返回类型是MyClass&(类的引用),所以返回的是this指针指向的对象本身的引用,而非对象副本或指针。
结合示例代码拆解
你的代码里,setNum和displayNum都返回*this,核心目的是实现链式调用:
- 执行
obj.setNum(10)时,this->num = num把10赋值给obj的私有成员num,随后return *this返回obj的引用——也就是说,obj.setNum(10)这个表达式的结果就是obj本身的引用。 - 紧接着调用
.displayNum(),本质是在obj的引用上执行该函数,因此会输出obj的num值:Num: 10。
为什么返回引用而非其他?
如果函数返回MyClass(值返回),return *this会创建当前对象的副本,后续链式调用就会在副本上操作,而非原对象obj,这通常不是我们想要的效果。返回引用既能保证操作原对象,又能避免对象拷贝带来的性能开销。
总结
在这个示例中,return *this的作用是让成员函数返回当前对象的引用,从而支持多个成员函数的链式调用,让代码更简洁紧凑。
内容的提问来源于stack exchange,提问作者Mohammed Mogeab Ahmed Al-hajj
相关产品推荐
相关产品推荐

