-
对于C++而言,运算符重载一般是作为类的成员函数出现。
-
运算符重载形式
[返回值] operator[运算符] (参数...) { ... };
- 数量一致:重载的参数个数必须与运算符原意的个数一致。比如+号的参数就是左加数和右加数两个。
- 默认传入对象的this指针作为函数的第一个形参:所以,如果运算符参数只有一个,那么不需要写参数;如果运算符参数有两个,那么只需要写一个参数。(仅考虑类的成员函数)
- 单目运算符,this所指向运算符右参数,因为单目运算符的参数一般都在右边。
- 双目运算符,this指向运算符左参数。
-
特殊点
- 自增运算符++A与A++。因为单目运算符重载的this指针指向右边,所以按正常写法我们写出来的是++A。C++规定,A++的写法是在正常++运算重载基础上,在参数上写一个int类型的参数。
-
流提取<<与流插入>>。重载就不能作为类的成员函数出现,得添加fiend关键字将函数声明为友元函数。
- 不能进行重载的运算符。
.* 任意字符出现零次或多次 :: 域作用符 sizeof 大小 ? : 三目运算符 . 点运算符