variable usar funcion estaticas estatica ejemplos cuando c++ class static

usar - ¿Accediendo a variables de clase estáticas en C++?



variable static java (4)

Duplicar:
C ++: referencia indefinida al miembro de la clase estática

Si tengo una clase / estructura como esta

// header file class Foo { public: static int bar; int baz; int adder(); }; // implementation int Foo::adder() { return baz + bar; }

Esto no funciona Aparece un error de "referencia indefinida al error` Foo :: bar ''". ¿Cómo accedo a las variables de clase estáticas en C ++?


Debe agregar la siguiente línea en el archivo de implementación :

int Foo::bar = you_initial_value_here;

Esto es necesario para que el compilador tenga un lugar para la variable estática.


Es la sintaxis correcta, sin embargo, Foo::bar debe definirse por separado, fuera del encabezado. En uno de sus archivos .cpp , diga esto:

int Foo::bar = 0; // or whatever value you want


Necesita agregar una línea:

int Foo::bar;

Eso te definiría un almacenamiento. La definición de estática en clase es similar a "extern": proporciona un símbolo pero no lo crea. es decir

foo.h

class Foo { static int bar; int adder(); };

foo.cpp

int Foo::bar=0; int Foo::adder() { ... }


para el uso de la variable estática en la clase, primero debe dar un valor en general (no localy) a su variable estática (initialize) luego puede acceder a un miembro estático en la clase:

class Foo { public: static int bar; int baz; int adder(); }; int Foo::bar = 0; // implementation int Foo::adder() { return baz + bar; }