小编Sou*_*abh的帖子

一元运算符在c ++中重载特殊情况

我成功完全重载了一元++,--postfix /前缀运算符,我的代码工作正常,但在使用(++obj)++语句时,它返回意外的结果

这是代码

class ABC
{
 public:
    ABC(int k)
    {
        i = k;
    }


    ABC operator++(int )
    {
        return ABC(i++);
     }

     ABC operator++()
     {
        return ABC(++i);
     }

     int getInt()
     {
      return i;
     }
    private:
   int i;
 };

 int main()
 {
    ABC obj(5);
        cout<< obj.getInt() <<endl; //this will print 5

    obj++;
     cout<< obj.getInt() <<endl; //this will print 6 - success

    ++obj;
    cout<< obj.getInt() <<endl; //this will print 7 - success

    cout<< (++obj)++.getInt() <<endl; //this will print 8 …
Run Code Online (Sandbox Code Playgroud)

c++ unary-operator visual-c++ post-increment

3
推荐指数
1
解决办法
534
查看次数

标签 统计

c++ ×1

post-increment ×1

unary-operator ×1

visual-c++ ×1