membros estáticos C ++ em sala de aula
Pergunta
É possível o acesso para acessar e usar estáticos membros dentro de uma classe sem primeiro criar uma instância dessa classe? Ou seja, tratar a classe como uma espécie de dumping terreno para globals
James
Solução
Você também pode chamar um método estático através de um ponteiro nulo. O código abaixo trabalho vontade, mas por favor, não usá-lo:)
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;
}
Outras dicas
Sim, é precisamente o que significa static
para os membros da classe:
struct Foo {
static int x;
};
int Foo::x;
int main() {
Foo::x = 123;
}
Por outro lado, é o que namespace são para:
namespace toolbox
{
void fun1();
void fun2();
}
O único uso de classes de funções estáticas é para as classes políticas.
Em suma, sim.
No longa, um membro estático pode ser chamado em qualquer lugar, você simplesmente tratar o nome da classe como um espaço de nomes.
class Something
{
static int a;
};
// Somewhere in the code
cout << Something::a;
Sim:
class mytoolbox
{
public:
static void fun1()
{
//
}
static void fun2()
{
//
}
static int number = 0;
};
...
int main()
{
mytoolbox::fun1();
mytoolbox::number = 3;
...
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow