在C++中操作符可以进行重载,其依赖的关键字是operator,在具体应用的时候按照如下格式进行使用:
以类成员函数的形式进行重载的时候:
返回值 类名::operator被重载操作符(参数)
※这里参数肯定要传进来一个本类对象,例 TEST TEST::operator+(TEST& data) const;这样子的函数形式。
以顶层函数的形式进行重载的时候:
返回值 operator被重载操作符(参数)
因为顶层函数不在类中,其单目操作符的重载会传入一个类对象参数,双目的要传入两个,还有些因为操作上的原因只能在类中进行重载,像[],(),->,=等。
例 TEST operator+(TEST& data1, TEST& data2);
操作符重载其实就是一个重载的函数,但是由于operator的作用可以书写的时候更方便。
operator+(a,b)和a+b的效果是等价的。
关于在C++中可以重载的操作符有以下这些:
new new[] delete delete[]
+, -,*,/ , ^, &, |, ~, !, =, <, >, +=,-=, *=,/=,%=, ^=, &=, |= , <<, >>, <<=, >>=, ==, != , <=, >=, &&, ||, ++, --, , , ->* -> , (), []