我正在寻找一种减少采用函数值的变量数量的方法,但是到目前为止,我什么都没想到。
以目前的方式编写代码,总是会返回该函数的值。
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()
以返回对某个内部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);
}