一、运算符重载介绍:
1.运算符重载允许把标准运算符(如 +,- ,*,/, <, >等)应用于自定义数据类型的对象
2.运算符重载的作用:
1) 直观自然,提高程序的可读性
2)体现C++的可扩展性
3)运算符重载仅仅是语法上的方便,他是另一种函数调用方式
4)运算符重载本质上是函数的重载
3.运算符重载注意事项
不可滥用重载,因为只是语法上方便,所以只有涉及的代码更容易写更容易读时才有必要重载
二、运算符重载的实现方式:
1.成员函数重载
2.友元函数重载
三、运算符重载规则
1.运算符重载不允许发明新的运算符
2.不能改变运算符操作对像的个数
3.运算符被重载后,其优先级和结合性不会改变
4.不能重载的运算符:
1)作用域解析运算符 ::
2)条件运算符 ?:
3)直接成员访问运算符 .
4) 类成员指针引用的运算符 .*
5)sizeof运算符 sizeof
四、成员函数和友元函数重载的选择
1.一般情况下,单目运算符最好重载为类的成员函数;双目运算符最好重载为类的友元函数。
2.以下一些双目运算符不能重载为类的友元函数:=,(),[], ->。
3.类型转换运算符只能以成员函数方式重载
4.流运算符只能以友元的方式重载