IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

variables globales vers variables de classe


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 83
    Par défaut variables globales vers variables de classe
    Salut,

    Bon, je reviens avec un 3ème problème en 5 jours... Je suis désolé mais j'ai beau chercher des solutions, rien n'y fait et je me retourne vers ce forum

    J'ai un soucis avec des déclarations de variables globales que j'aimerai passer en variables de classes. Dans mon prog, j'ai 3 classes, et au départ, au lieu de déclarer des variables de classes, je mettais tout en variables globales parceque je ne savais pas encore dans quelles classes j'en aurais besoin

    Et maintenant, j'essais de transformer certaines variables globales utilisées dans une seule classe en variable de classe. Hélàs ca bug...

    Voici mes déclarations avant de mettre mes variables globales en variables de classe(le programme fonctionne très bien agencé de cette façon) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    ...
    #define nb_voies_max 100
     
    /**** Variables globales ****/
    		static bool notif_paquet;
    		int  paquet_sur_voie_num[nb_voies_max];
    		bool arret_des_threads;
    		string paquet_[nb_voies_max];
    		HANDLE hEventsInitOK[nb_voies_max];
     
     
    /**** Déclaration de classes ****/
    	class FEE{	
    		public :	
    			string chargement_paquets(int,const char* ,int , int );
    	};
    	class FIN{  
    		private :
    			 string flux;
    		public :
    			void concatenation_paquets(int);
    			void concatenation2_paquets();
    			void finalisation(string);
    	};
     
    	class MUX{	
    		private :
    			static void mise_a_dispo_paquet (int, string ,int );
    			struct struct_voie;
    			static unsigned long WINAPI Thread (void * );
    			void notif_paquet_delivre(int);
    			void core (int , int ,int ,struct_voiePID [nb_voies_max]);
    			FIN* final;
     
    		public :
    			void multiplexeur (int ,int [], string [nb_voies_max] ,int [], int ,int,string );
     
    	};
     
    ...
    Quand je déplace les variables globales dans la classe correspondante, comme par exemple ici pour bool notif_paquet;, la compilation bug au niveau de l'édition de lien je crois...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    ...
    class MUX{	
    		private :
    			static void mise_a_dispo_paquet (int, string ,int );
    			struct struct_voie;
    			static unsigned long WINAPI Thread (void * );
    			void notif_paquet_delivre(int);
    			void core (int , int ,int ,struct_voiePID [nb_voies_max]);
    			FIN* final;
    			static bool notif_paquet;
    		public :
    			void multiplexeur (int ,int [], string [nb_voies_max] ,int [], int ,int,string );
    			
    	};
    ...
    Pourtant, cette variable n'est utilisé que dans les méthodes de la classe MUX.
    Voici l'erreur :
    MultiplexeurDeFlux error LNK2020: jeton non résolu (0A000061) ?notif_paquet@MUX@@0_NA
    MultiplexeurDeFlux fatal error LNK1120: 1 externes non résolus

    ouillouilloulle !!!

    Désolé pour la longueur du message, j'espere que quelqu'un saura m'aider

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 83
    Par défaut
    Bon, et bien apparemment, j'ai corrigé le problème (mais j'attend confirmation).
    En déclarant puis en instanciant de la facon suivante, ca a l'aire de fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    ...
    class MUX{	
    	private :
    		static void mise_a_dispo_paquet (int, string ,int );
    		struct struct_voie;
    		static unsigned long WINAPI Thread (void * );
    		void notif_paquet_delivre(int);
    		void core (int , int ,int ,struct_voiePID [nb_voies_max]);
    		FIN* final;
    		static bool notif_paquet;
    	public :
    		void multiplexeur (int ,int [], string [nb_voies_max] ,int [], int ,int,string );
    	};
     
    	bool MUX::notif_paquet=false;
    ...
    J'ai trouvé cela ici mais à vrai dire, je ne comprend pas trop pourquoi cela fonctionne mieux...

  3. #3
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 83
    Par défaut
    Encore une fois Merci laurent !

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    N'oublie pas de cliquer sur

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. appel vers une variable global
    Par PePedu78 dans le forum MFC
    Réponses: 12
    Dernier message: 26/01/2008, 14h56
  2. Réponses: 7
    Dernier message: 15/11/2007, 14h41
  3. Classe privée et variables globales
    Par mavina dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 21/04/2006, 15h03
  4. Variables globales dans une classe
    Par vanitom dans le forum C++
    Réponses: 16
    Dernier message: 14/01/2005, 14h40
  5. Cacher Variable Url avec Variable Globale
    Par danuz dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/09/2003, 17h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo