减少用函数值定义的变量的值

Reduce values ​of a variable that is defined with the value of a function

我正在寻找一种方法来减少从函数中获取值的变量的值。然而,到现在我还没有想到什么。

按照它的编写方式,当前代码将始终return函数的值。

std::string Barger::ShowMessage() {

    int var = Barger::get().var();

    char mes[20];

    sprintf_s(mes, sizeof(mes), "Value Var %d", var--);

    return std::string(mes);
}

我需要的是每次执行std::string Barger::ShowMessage()函数都会从变量中减少-1,但是函数Barger::get().var()不允许这样做。

您没有将 operator-- 的结果保存在局部变量以外的任何地方,因此每次调用 ShowMessage() 时,您都会一次又一次地检索相同的原始值。您需要更多类似于以下内容的内容,如果您还没有,则必须添加:

std::string Barger::ShowMessage() {

    int var = Barger::get().var();

    char mes[20];

    sprintf_s(mes, sizeof(mes), "Value Var %d", var--);

    Barger::get().setvar(var); // <-- here

    return std::string(mes);
}

除非您可以将 var() 更改为 return 对某些内部 int 变量的非常量 int& 引用,而不是 returning int 副本:

std::string Barger::ShowMessage() {

    int& var = Barger::get().var();

    char mes[20];

    sprintf_s(mes, sizeof(mes), "Value Var %d", var--);

    return std::string(mes);
}