#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不可以?
1 回答
![?](http://img1.sycdn.imooc.com/533e4c420001b2e502000200-100-100.jpg)
子衿沉夜
TA贡献1828条经验 获得超3个赞
#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;
}
- 1 回答
- 0 关注
- 561 浏览
添加回答
举报
0/150
提交
取消