试图在 c++ 中重载 post 增量运算符,但答案不是预期的

Tryiing to overload the post increment operator in c++ in but the answer is not as expected

#include <iostream>
using namespace std;

class B{
        int temp1;
    public :
        void disp()
        {   
        cout <<temp1;
        }
        void setA(int a)
        {
            temp1=a;
        }       
        void operator ++(int)
        {
            temp1+=5;
        }
        void cal()
        {
            temp1 ++;
        }
        };  

int main()
{
    B b; 
    b.setA(10);

    b.cal();
    b.disp();
    return 0;
}

我最近了解了运算符重载,所以开始研究代码......所以这里的预期答案是 15,但它显示为 11。为什么我的重载运算符不工作......特别是哪里出了问题使用此代码 rsince 这部分似乎存在逻辑错误:

void operator ++(int)
        {
            temp1+=5;
        }
        void cal()
        {
            temp1 ++;
        }

请注意,您为 class B 重载了 ++ 运算符。 cal 方法使用 ++ 成员 temp1 递增,它是 int,而不是 B - 因此 - 它通常从 10 增加到 11。

如果您在 main 函数中完成 b++,您就会得到预期的结果。注意 ++ 应该 return 增量对象的前一个值,如果你希望与大多数人的期望保持一致,所以

something = b++; //something should probably be a B. 

会起作用。