Вы не сохраняете результат 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);
}