目录
运算重载符
概念: 运算符重载是具有特殊函数名的函数,也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。
函数原型:
返回值 operator操作符(参数列表)
注意:
- 运算符重载,就是对已有的运算符重新进行定义,赋予其另外一种功能,以适应不同的数据类型
- 不能通过重载操作符来创建新的操作符,如operator@
- 必须含有一个类类型或枚举类型的操作数
- 不能改变内置类型的含义
- 重载函数如果写成成员函数,左侧第一个参数隐含了一个Date* const this的形参,限定为第一个形参
- 重载函数如果写成全局,那么左边是你输入的第一个参数,右边是第二个参数
- .*,::,?:,sizeof,.这五个运算符不能重载
注意以下几点:
- 除了赋值号(=)之外,基类中被重载的操作符都将被派生类继承
- =,[],(),->操作符只能通过成员函数进行重载
- << 和 >> 操作符最好通过友元进行重载
- 不要重载&&和||运算