/*01_03
note:
1.重载是指一个与以前已经在改做用域内声明过的函数或者方法具备相同的名称或者方法可是他们参数列表必须不同。
2.重载决策:当你调用一个重载函数或者重载运算符时,编译器经过把您所用的参数类型与定义中的参数类型进行对比,决定使用最合适的定义,选择最合重载函数或重载运算符的过程
3.运算符重载:函数名为是由关键字operator和其后要重载的运算符符号构成,与其余函数同样重载运算符有一个返回类型和一个参数列表(如int operator+(int a){....})
.下面是可重载的运算符列表:
双目算术运算符 + (加),-(减),*(乘),/(除),% (取模)
关系运算符 ==(等于),!= (不等于),< (小于),> (大于>,<=(小于等于),>=(大于等于)
逻辑运算符 ||(逻辑或),&&(逻辑与),!(逻辑非)
单目运算符 + (正),-(负),*(指针),&(取地址)
自增自减运算符 ++(自增),--(自减)
位运算符 | (按位或),& (按位与),~(按位取反),^(按位异或),,<< (左移),>>(右移)
赋值运算符 =, +=, -=, *=, /= , % = , &=, |=, ^=, <<=, >>=
空间申请与释放 new, delete, new[ ] , delete[]
其余运算符 ()(函数调用),->(成员访问),,(逗号),[](下标)
.下面是不可重载的运算符列表:
.:成员访问运算符
.*, ->*:成员指针访问运算符
:::域运算符
sizeof:长度运算符
?::条件运算符
#: 预处理符号
.参数数量与该运算符做用的运算的对象数量同样多,一元就是一个二元就是两个。对于二元来讲左侧运算对象传递给第一个参数右侧传递给第二个参数。
4.一元运算符重载
.是成员函数,则它的第一个运算对象绑定到隐式this指针,所以成员运算符函数显式参数数量比运算符运算对象总数少一个。函数
*/this