【发布时间】:2009-01-21 14:30:14
【问题描述】:
在他的 The C++ Programming Language Stroustrup 中给出了以下关于 inc/dec 重载的示例:
class Ptr_to_T {
T* p;
T* array ;
int size;
public:
Ptr_to_T(T* p, T* v, int s); // bind to array v of size s, initial value p
Ptr_to_T(T* p); // bind to single object, initial value p
Ptr_to_T& operator++(); // prefix
Ptr_to_T operator++(int); // postfix
Ptr_to_T& operator--(); // prefix
Ptr_to_T operator--(int); // postfix
T&operator*() ; // prefix
}
为什么前缀运算符按引用返回,而后缀运算符按值返回?
谢谢。
【问题讨论】:
-
应该是:Ptr_to_T& operator--(); // 前缀 Ptr_to_T 运算符--(int); // 后缀