Статические переменные в методах экземпляра

Допустим, у меня есть эта программа:

class Foo {
 public:
    unsigned int bar () {
        static unsigned int counter = 0;
        return counter++;
    }
};

int main ()
{
    Foo a;
    Foo b;
}

(Конечно, этот пример не имеет смысла, поскольку я бы объявил «counter» как частный атрибут, но это просто для иллюстрации проблемы).

Я хотел бы знать, как C ++ ведет себя в такой ситуации: будет ли переменная "counter" в методе bar () одинаковой для каждого экземпляра?

Ответы на вопрос(5)

Ваш ответ на вопрос