4.6自增/自减运算符的重载

打开网易新闻 查看更多视频

自加/自减运算符的重载 :

自加 ++/自减 -- 运算符有 前置/后置 之分 前置运算符作为一元运算符重载

重载为成员函数: T & operator++(); T & operator--();

重载为全局函数: T & operator++(T &); T & operator—(T &); ++obj, obj.operator++(), operator++(obj) 都调用上述函数。

后置运算符作为二元运算符重载

多写一个参数, 具体无意义

重载为成员函数: T operator++(int); T operator--(int);

重载为全局函数: T operator++(T &, int); T operator--(T &, int); obj++, obj.operator++(0), operator++(obj,0) 都调用上函数。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

运算符重载的注意事项 C++不允许定义新的运算符 重载后运算符的含义应该符合日常习惯

complex_a + complex_b word_a > word_b

date_b = date_a + n 运算符重载不改变运算符的优先级 以下运算符不能被重载: “.”, “.*”, “::”, “?:”, sizeof 重载运算符(), [ ], ->或者赋值运算符=时, 重载函数必须声明 为类的成员函数。