运算符重载的作用
内置
对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型
方法一:成员函数重载(Person类做假设)
class Person{
public:
Person operator+(Person &p)
{
Person temp;
temp.m=this->m+p.m;
temp.n=this->n+p.n;
return temp;
}
int m;
int n;
}
调用的时候就可以用
void test(){
Person p1;
p1.m=10;
p1.n=10;
Person p2;
p2.m=10;
p2.n=10;
Person p3=p1+p2
cout<<p3.m<<p3.n<<endl;
}
其中Person p3=p1+p2是Person p3=p1.operator+(p2)
方法二:全局函数重载(Person类做假设)
class Person{
public:
Person operator+(Person &p1,Person &p2)
{
Person temp;
temp.m=p1.m+p2.m;
temp.n=p1.n+p2.n;
return temp;
}
int m;
int n;
}
调用的时候就可以用
void test(){
Person p1;
p1.m=10;
p1.n=10;
Person p2;
p2.m=10;
p2.n=10;
Person p3=p1+p2
cout<<p3.m<<p3.n<<endl;
}
这里的Person p3=p1+p2是Person p3=operator+(p1,p2)的简化