Допустим, у меня есть простой class
с методом write
, который должен выводить только атрибуты класса.Среди них изменяемая переменная с именем counter
.Счетчик должен увеличиваться при каждом вызове метода write
.
Проблема в том, что counter
привязан к классу, а не к конкретному объекту.Если у меня есть два объекта одного типа, и если я вызову write
3 раза для первого, но ноль для второго, счетчик будет иметь одинаковое значение для обоих.Как это можно исправить?Я предполагаю, что это как-то связано с конструкторами.
class SomeClass
{
double x;
mutable int counter;
public:
double write()
{
return x;
++counter;
}
int counterValue()
{
return counter;
}
};
int main()
{
SomeClass c1, c2;
c1.write();
c1.write();
c1.write();
c1.counterValue();
c2.counterValue();
return 0;
}
ВЫХОД: 3 3