Итак, я понимаю, что:
class Foo {
public:
static int bar;
}
Означает, что я могу получить доступ к Foo::bar
более или менее в любом месте.
Но как насчет такого кода?
class Foo {
public:
static int* bar() {
static int fred = 1;
static int barney = 2;
static int thelma = 3;
return &thelma;
}
};
Как мне получить доступ к fred
и barney
? Я понимаю, что они создаются только один раз и существуют на протяжении всей жизни программы, но, вероятно, они недоступны, поскольку Foo::barney
.
Я видел этот шаблон в реальном коде и поэтому удивляюсь, как он работает.