begin process at 2012 05 30 04:12:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Membre static d'une classe : undifined reference to


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Membre static d'une classe : undifined reference to

mercredi 29 mars 2006 à 12:15:14 | Membre static d'une classe : undifined reference to

ctx_man

Salut !
Je ne comprend pas mon erreure...

class A
{
    private:
        static long var;
        [....]
    public:
        [....]
        static void setVar(long val);
};

void A::getVar(long val)
{
     var = val; //Undifined reference to 'A::var'
}


Je voudrai bien savoir comment acceder a cette variable static ! En fait, c'est surtout sont adresse qui m'interesse (donc &var). J'ai tester plein de syntaxe mais aucune ne fonctionne, il me dit toujours que le membre static n'est pas définie...

Le travail c'est la santé, ne rien faire c'est la préservé !!!
mercredi 29 mars 2006 à 12:53:48 | Re : Membre static d'une classe : undifined reference to

luhtor

Il ne suffit pas de déclarer une variable static, il faut l'initialiser:

class A
{
    private:
        static long var;
        [....]
    public:
        [....]
        static void setVar(long val);
};

long A::var = 0;

void A::getVar(long val)
{
     var = val; //Undifined reference to 'A::var'
}

mercredi 29 mars 2006 à 14:39:13 | Re : Membre static d'une classe : undifined reference to

ctx_man

Effectivement ca fonctionne, cependant j'ai un autre probleme maintenant et la je capte pas du tout. Il dit qu'il y as une declaration multiple de ma variable static. La premiere declaration cest effectivement moi, la deuxieme ca vien de je ne sais ou... il me dit que c'est a la ligne 2497 d'un certain fichier : "$(Chemin_projet)\..\lib\gcc\mingw32\3.4.4\..\..\..\..\include\c++\3.4.4\bits\local_facets.tcc

Deja ce chemin est special puisque .\lib\gcc\mingw32\3.4.4\..\..\..\..\ -> .\
Et en plus j'appelle pas ce fichier. Et pour finnir j'ai beau changer le nom de la variable en mettant des truc super long qui veulent rien dire, ca ne change rien a l'erreure (meme pas la ligne). Pourtant mon header de la class commence par
#ifndef __NOM_DE_MA_CLASS_H__
#define __NOM_DE_MA_CLASS_H__
et finnit par
#endif

Donc je ne devrait pas avoir de multiple declarations.....
Bref, je capte rien...


Le travail c'est la santé, ne rien faire c'est la préservé !!!
mercredi 29 mars 2006 à 16:42:43 | Re : Membre static d'une classe : undifined reference to

luhtor

Tu pourras rien améliorer en modifiant la macro, il faut juste absolument mettre ca:
long A::var = 0;

void A::getVar(long val)
{
     var = val; //Undifined reference to 'A::var'
}

et le reste de l'implémentation dans le fichier .cpp


jeudi 30 mars 2006 à 01:26:51 | Re : Membre static d'une classe : undifined reference to

ctx_man

Oui oui, g initialiser ma variable comme tu l'a illustrer, mais je te dis avoir une autre erreure depuis. Lit bien ce que j'ai marquer.

PS: En tout cas merci de prendre le temps de m'aider.

Le travail c'est la santé, ne rien faire c'est la préservé !!!
samedi 6 octobre 2007 à 14:20:39 | Re : Membre static d'une classe : undifined reference to

lalebarde

Je viens d'être confronté au même problème. Je sais bien que ce thread est vieux, mais il n'ai jamais trop tard pour les autres. En fait, le piège est que la déclaration de la variable static (long A::var = 0;) dois être faite dans le .cpp, et non dans le .h Sinon, le compilateur râle au cas où le .h fait l'objet d'include dans plusieurs .cpp (double déclaration). Il peut même signaler des erreurs abhérantes. C'est du vécu ! Et j'ai galéré un moment avant de m'en sortir.


Cette discussion est classée dans : static, var, reference, membre, undifined


Répondre à ce message

Sujets en rapport avec ce message

variable membre non static dans une fonction membre static [ par adrod ] J'ai une erreur du compilateur: Error C2597. Je suis allé sur msdn pour avoir plus de précision et ils me disent:To access the nonstatic member, you m Utilisation membre static? [ par arbixy ] Bonjour, J'ai un souci de linking avec un morceau de code, et je vous avoue que je n'ai pas la moindre idée de pourquoi. Voila le code incrim Surdéfinition statique (static) d'une variable membre [ par PetersonG ] Bonjour,Une drôle d'idée m'a fait surdéfinir en static une variable membre d'une classe parente, et, à ma grande surprise, le code compile sans problè Acces a une donnée membre static via un thrread [ par pito50 ] Bonjour,J'initialise une donnée membre static d'une classe dansmon proccess principale. Par la suite je crée un thread al'aide de AfxBeginThread et j' déclarer un deque comme membre static ? [ par lalebarde ] Bonjour, J'ai des soucis pour déclarer un membre static de type deque dans une classe. Vu que la taille est flexible, est-ce possible ? server [ par snpier wolf ] bonjours a tous,voila j'ai un petit soussi avec C++.je veux fair un serveur avec un ou des cliens.voila simplement je ne sais ps le fair alors, alors Static ou Editbox en gras [ par fredsor ] Salut a tous, Certains diront peut etre que la question a deja été posée, mais j'ai eu beau cherché sur cpp et sur le net, je n'ai pas eu de réponses Conflit éditeur de ressource et CreateWindow [ par rachid1245 ] Bonjour a tous Voilà j'utilise VC6 et son éditeur de ressourceje crée un objet CFormView avec l'éditeur de ressource avec plein de contôle dedans to Pb Structures [ par nathiara ] Bonjour, j'ai un soucis avec mes structures EXT_AFFICHAGE typedef struct{    gchar Valeur[20];    int XT;    int YT;    char police[10];    int taille Compilation :pour professionels [ par snoopi_19ans ] J'ai vraiment trouvé l'environnement d'etude que je cherche depuis longtempsDEmande pourle sprofessionnels::<?xml:namespace prefix = o ns =


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales