第四节 · 换一种干活的方式 · 函数调用运算符定义
递增递减运算符(++、--)和成员访问运算符(->、*)的重载有一些特殊的规则和技巧。
前置递增递减
class Counter
{
private:
int value;
public:
Counter(int v = 0) : value(v) {}
// 前置 ++:返回引用
Counter& operator++()
{
++value;
return *this;
}
// 前置 --
Counter& operator--()
{
--value;
return *this;
}
int getValue() const { return value; }
};
int main()
{
Counter c(5);
cout << (++c).getValue() << endl; // 6
cout << (++c).getValue() << endl; // 7
return 0;
}后置递增递减
迭代器风格
箭头运算符 ->
链式箭头运算符
指针风格的类
为什么前置比后置高效
实现范围迭代
习题
解释前置和后置递增的参数列表区别。
为双向迭代器添加
--运算符。实现一个
StepRange类,支持指定步长。
Last updated