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

问题描述 投票:-1回答:1

我正在寻找一种减少采用函数值的变量数量的方法,但是到目前为止,我什么都没想到。

以目前的方式编写代码,总是会返回该函数的值。

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()不允许这样做。

c++ decrement
1个回答
1
投票

您没有将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()以返回对某个内部int&变量的非常量int引用,而不是返回它的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);
}
© www.soinside.com 2019 - 2024. All rights reserved.