1.问题引出
Q:重载++或者–的时候如何区分前置和后置?
以前C+对前置和后置++没有很好的办法可以区分,为了解决这个问题,C++决定扩充,允许++和–操作符的两种形式(前置和后置)拥有重载能力
2.C+规范
这时候出现了一个语法上的问题:重载函数是以其参数类型来区分彼此的,然而不论increment 或decrement 操作符的前置式或后置式,都没有参数。为了填*这个语言学上的漏洞,只好让后置式有一个int 自变量,并且在它被调用时,编译器默默地为该int 指定一个0值: - class UPInt l
- // "unlimited precision int.
- public:
- UPInt& operator++();
- //前置式(prefix)++。
- const UPInt operator++(int);
- UPInt& operator
复制代码 |