为什么返回要是*this
类里面如果定义了静态的变量会返回*this报错的
类里面如果定义了静态的变量会返回*this报错的
2016-09-24
记住:重载的运算符是一个函数,他只是一个普通的函数,只是他的函数名称比较特别,比如
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&是不兼容的,因此要解引用。
---来自百度知道
举报