猿问

c++运算符重载

#include<iostream>

using namespace std;

class Cstu{
public:
int a;
int b;
Cstu():a(12),b(13){}
~Cstu(){cout<<"end"<<endl;}
};

int operator+(Cstu &s1,int i){
return (s1.a+i);
}
int operator+(int i,Cstu& s1){
return (i+s1.b);
}

int main(){

Cstu stu;
cout<<(stu+5+stu)<<endl;

return 0;
}
为什么重载函数的参数Cstu可以是引用而i不可以?

ibeautiful
浏览 562回答 1
1回答

子衿沉夜

#include<iostream>using namespace std;int a = 0;class Cstu{public:int a;int b;Cstu() :a(12), b(13){}~Cstu(){ cout << "end" << endl; }};int& operator+(Cstu &s1, int &i){a = s1.a + i;return a;}int operator+(int &i, Cstu& s1){return (i + s1.b);}int main(){Cstu stu;int i = 5;cout << (stu + i + stu) << endl;return 0;}
随时随地看视频慕课网APP
我要回答