1.运算符重载的六个注意事项:
(1).重载运算符函数的参数个数,应该与参与这个运算符的运算对象数量一样多,但是如果是成员函数,则参数数量要少一个,因为第一个参数是this。例如:
#include<iostream>
using namespace std;
class Test
{
public:
int value;
int operator+(const Test &v ) //重载为成员函数
return this->value+v.value; //等同于value+v.value;
};
int operator+(const Test &v1,const Test &v2)
{
return v1.value+v2.value;
}
int main()
{
Test a,b;
a.value=5;
b.value=6;
printf("a+b=%d\n",a+b);
return 0;
}
(2).运算符重载函数的参数至少要有一个类的成员(或者类类型)作为参数,而不能都是内置类型(会导致编译错误)。例如int operator+(int, int)是不行的,因为int是内置类型。内置类型的操作符明显是不能重载的,比如重载了int型的+运算符,那程序其他地方的int加法都会使用重载的函数,这明显是不行的。
(3).运算符可以像普通函数一样调用。
(4).有些运算符是不适合重载的;(,、&、&&、||等)。