Учитывая класс:
class A {
Public:
void foo() {
static int i;
i++;
}
};
Как бы вы изменили его, чтобы запретить i
переключаться между экземплярами, следуя этому примеру:
A o1, o2, o3;
o1.foo(); // i = 1
o2.foo(); // i = 1
o3.foo(); // i = 1
o1.foo(); // i = 2
т.е. выделить память для i
на каждый экземпляр.
EDIT:
Да, вы можете добавить i
в качестве переменной экземпляра, но что если вам понадобятся эти счетчики в различных (независимых) функциях? Я ищу ограничить область действия переменной только функцией ("в функциях-членах") . Было бы неловко добавлять переменные, такие как i
, c
, counter
, counter_2
, если вам нужны различные счетчики, не так ли?