减少用函数值定义的变量的值
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);
}
我正在寻找一种方法来减少从函数中获取值的变量的值。然而,到现在我还没有想到什么。
按照它的编写方式,当前代码将始终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);
}