class Digit
{
private:
int m_nDigit;
public:
Digit(int nDigit=0)
{
m_nDigit = nDigit;
}
Digit& operator++(); // prefix
Digit& operator--(); // prefix
Digit operator++(int); // postfix
Digit operator--(int); // postfix
int GetDigit() const { return m_nDigit; }
};
Digit& Digit::operator++()
有一些有趣的事情去这里。第一,注意,我们已经从杰出的前缀后缀的整数参数提供给虚拟运营商在后缀版本。第二,因为虚拟函数中使用的参数是不执行,即使我们没有给它一个名称。这告诉编译器,这是对作为一placeholder变量,这意味着它不会被警告美国,但我们不使用变量的信息。
第三,注意,前缀和后缀的经营者做同样的工作,他们都是一流的增量或减量。的差异之间的两个是在他们的价值的回报。返回舱的超负荷运营商在前缀后它已incremented或递减。因此,论文是相当简单的重载。我们简单的递增或递减的成员变量,然后回本。
运营商的后缀,在其他的手,需要返回舱在州立学院,它是incremented或递减。这导致了一个难题,如果我们增加或减小一级,我们不可以返回舱在州立学院incremented或减少它。在其他的手,如果我们返回舱在我们国家的递增或递减递增或递减它,永远不会的。
这是解决问题的典型方法是使用临时变量保存的值,它是一类在incremented或递减。的话,我们可以incremented舱或递减。终于和临时变量,这是返回到来电。在这种方式,一来电显示接收复制之前,它是incremented递减类或类,但它是incremented或递减。注意,这个返回值的均值和非多超负荷运营商的参考,因为我们不能返回一个本地变量的引用将被在函数的出口。所以这意味注意后缀通常是比少的高效运营商添加前缀,因为在大学instantiating架空临时变量的参考价值而返回。
最后,注意,我们已经写了后递增和后递减,它在这样一种方式的预前调用的增量和减量做大部分的工作。唐氏在削减重复的码本,使我们更容易在未来的数据类。