Membri statici C ++ in classe
Domanda
È possibile accedere per accedere e usare membri statici all'interno di una classe senza prima creare un'istanza di quella classe? Vale a dire la classe come una sorta di discarica per i globali
James
Soluzione
Puoi anche chiamare un metodo statico tramite un puntatore nullo. Il codice seguente funzionerà, ma per favore non usarlo :)
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;
}
Altri suggerimenti
Sì, è esattamente cosa significa statico
per i membri della classe:
struct Foo {
static int x;
};
int Foo::x;
int main() {
Foo::x = 123;
}
D'altra parte, questo è lo spazio dei nomi per:
namespace toolbox
{
void fun1();
void fun2();
}
L'unico uso di classi di funzioni statiche è per le classi politiche.
In breve, sì.
In breve, un membro statico può essere chiamato ovunque, semplicemente si considera il nome della classe come uno spazio dei nomi.
class Something
{
static int a;
};
// Somewhere in the code
cout << Something::a;
Si
class mytoolbox
{
public:
static void fun1()
{
//
}
static void fun2()
{
//
}
static int number = 0;
};
...
int main()
{
mytoolbox::fun1();
mytoolbox::number = 3;
...
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow