Статические члены C++ в классе
Вопрос
Можно ли получить доступ и использовать статические члены внутри класса без предварительного создания экземпляра этого класса?Т.е. относитесь к классу как к своего рода свалке для глобальных переменных.
Джеймс
Решение
Вы также можете вызвать статический метод через нулевой указатель.Код ниже будет работать, но, пожалуйста, не используйте его :)
struct Foo
{
static int boo() { return 2; }
};
int _tmain(int argc, _TCHAR* argv[])
{
Foo* pFoo = NULL;
int b = pFoo->boo(); // b will now have the value 2
return 0;
}
Другие советы
Да, это именно то, что static
средства для членов класса:
struct Foo {
static int x;
};
int Foo::x;
int main() {
Foo::x = 123;
}
С другой стороны, для чего предназначено пространство имен:
namespace toolbox
{
void fun1();
void fun2();
}
Классы статических функций используются только для классов политики.
Короче говоря, да.
Короче говоря, статический член можно вызывать где угодно, вы просто рассматриваете имя класса как пространство имен.
class Something
{
static int a;
};
// Somewhere in the code
cout << Something::a;
Да:
class mytoolbox
{
public:
static void fun1()
{
//
}
static void fun2()
{
//
}
static int number = 0;
};
...
int main()
{
mytoolbox::fun1();
mytoolbox::number = 3;
...
}
Не связан с StackOverflow