例如Cat & opetator(const Cat &)
为什么都要用引用,一定要吗?不用可不可以?
例如Cat & opetator(const Cat &)
为什么都要用引用,一定要吗?不用可不可以?
我不久前正好遇到和你同样的问题,已经解决了,看了下面的你就会明白:(MyInt是类名)
MyInt operator +(const MyInt& temp) const {
cout<<"+运算符的重载"<<endl;
MyInt result;
result.a=a+temp.a;
result.b=b+temp.b;
return result;
}
MyInt& operator +=(int iSep){
a+=iSep;
b+=iSep;
cout<<"+=运算符的重载"<<endl;
return *this;
}
MyInt& operator ++(){
++a;
++b;
cout<<"前递增++运算符的重载"<<endl;
return *this;
}
MyInt operator ++(int){
cout<<"后递增++运算符的重载"<<endl;
MyInt org(*this);
++a;
++b;
return org;
}
Cat & opetator(const Cat &) 你这句没重载任何运算符啊,关键字是operator。
比如Cat & opetator= (const Cat & p),重载了=运算符后,你在对对象使用该运算符时,可能会使用到这么一种情况 (a=b)=c;(当然,这里的a,b,c都是对象)这样的话,括号内部如果返回值是别的类型的话,就不能做为左值。返回引用的一个重要作用就是作为左值,对于不同的运算符,一般都会返回不同的类型,比如>,<这样的一般都返回bool类型,具体选择类型还是要根据自己的情况确定,没有明确的要求。