为了账号安全,请及时绑定邮箱和手机立即绑定

为什么返回要是*this

类里面如果定义了静态的变量会返回*this报错的 

正在回答

1 回答

记住:重载的运算符是一个函数,他只是一个普通的函数,只是他的函数名称比较特别,比如

A operator +(A m) {...}

假设A是一个类,那么这个重载的加操作符,其函数名称就是operator +,函数的反回类型是A,参数是A m

就像 int Function(int i){}这种形式。

因此C++运算符重载反回的是什么,要根据反回类型来决定的,不是都一味的反回returen *this就行的,但一般的操作符重载函数都是以A& operator +(A & m)的形式开始的,基本上都要求反回对自身的引用,注意是对自身类的引用,不一定要*this,也可以是new A()之类的类A的对象,之所以要使用*那是因为this是一个指针,与反回类型A&是不兼容的,因此要解引用。


---来自百度知道

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之模板篇
  • 参与学习       91156    人
  • 解答问题       318    个

本C++教程力求即学即会,所有知识以实践方式讲解到操作层面

进入课程

为什么返回要是*this

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信