C++:运算符重载
重载运算符的函数可以是成员函数也可以是非成员函数,但它至少含有一个类类型的参数:1.非成员函数例1.#include <iostream>using namespace std;class A{public:int x=96;};int operator+(A a,int b){return a.x+b;}int main(int argc...
·
重载运算符的函数可以是成员函数也可以是非成员函数,但它至少含有一个类类型的参数:
1.非成员函数
例1.
#include <iostream>
using namespace std;
class A{
public:
int x=96;
};
int operator+(A a,int b){
return a.x+b;
}
int main(int argc,char * argv[]){
A obj;
cout<<obj+5<<endl;
return 0;
}
例2.
#include <iostream>
using namespace std;
class Complex{
public:
Complex(){
}
Complex(int rx,int vx){
r=rx,v=vx;
}
int r,v;
};
Complex operator+(Complex a,Complex b){
Complex c;
c.r=a.r+b.r;
c.v=a.v+b.v;
return c;
}
int main(int argc,char * argv[]){
Complex a(1,3),b(6,12),c;
c=a+b;
cout<<c.r<<"+"<<c.v<<"i"<<endl;
return 0;
}
2.成员函数
#include <iostream>
using namespace std;
class Complex{
public:
Complex(){
}
Complex(int rx,int vx){
r=rx,v=vx;
}
Complex operator+(Complex a){//must take either zero or one argument
Complex c;
c.r=a.r+this->r;
c.v=a.v+this->v;
return c;
}
int r,v;
};
int main(int argc,char * argv[]){
Complex a(1,3),b(6,12),c;
c=a+b;
cout<<c.r<<"+"<<c.v<<"i"<<endl;
return 0;
}
更多推荐
已为社区贡献1条内容
所有评论(0)