L'accès statique de la classe de variables en C++?
Double:
C++: undefined reference to membre de classe statique
Si j'ai un class/struct comme ce
//header file
class Foo
{
public:
static int bar;
int baz;
int adder();
};
//implementation
int Foo::adder()
{
return baz + bar;
}
Cela ne fonctionne pas. Je reçois un "undefined reference to `Foo::bar'" erreur. Comment puis-je accéder statique de la classe de variables en C++?
- Notez qu'il vous manque un ';' après la définition de la classe.
Vous devez vous connecter pour publier un commentaire.
Vous devez ajouter la ligne suivante dans le mise en œuvre fichier:
C'est nécessaire pour que le compilateur a une place pour la variable statique.
C'est la syntaxe correcte, cependant,
Foo::bar
doit être définie séparément, en dehors de l'en-tête. Dans l'un de vos.cpp
fichiers, dire ceci:Vous avez besoin d'ajouter une ligne:
Qui permettrait de définir la vous un stockage. Définition de la statique dans la classe est similaire à la "extern" -- il fournit symbole, mais ne le crée pas. ie
foo.h
foo.cpp
pour l'utilisation de la variable statique dans la classe, dans la première, vous devez donner une valeur en général (pas en local) à votre variable statique (initialiser) ensuite, vous pouvez accéder à un membre statique d'une classe de