Обычно я стараюсь максимально ограничить область видимости переменных, если это не становится странным или утомительным.
Если у вас есть 1000 строк кода в class C
, из них 100строк кода в функции foo
, любое изменение, которое вы вносите в bar
(например, изменение имени или типа), требует более 100 строк кода, чтобы убедиться, что изменение в порядке.Если у вас bar
статический член класса, вам, возможно, придется пройти более 1000 строк кода, просто чтобы убедиться, что bar
там не используется.Это было бы пустой тратой времени.
Если вы считаете, что вам может понадобиться bar
в другой функции foo2
(например, при подсчете количества вызовов для foo
и foo2
вместе), вы можетехочу сделать bar
статическим членом класса.