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

c++运算符重载

c++运算符重载

C++
ibeautiful 2018-08-06 04:05:50
#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 回答

?
子衿沉夜

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;
}

查看完整回答
反对 回复 2018-09-01
  • 1 回答
  • 0 关注
  • 561 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信