Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1524 connectés 

  FORUM HardWare.fr
  Programmation

  [C++] Classes dans .h

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Classes dans .h

n°46868
antsite
Je me souviens
Posté le 16-07-2001 à 09:43:55  profilanswer
 

Je rencontre actuellement un problème très lourd :
je fais un .h avec la déclaration d'une classe avec une variable dedans.
Lorsque j'accède à cette classe à partir du .cpp qui affecte une valeur à la variable de la classe, tout marche, je peux lire la variable.
Mais quand je veux accèder à cette même variable, une fois qu'elle a reçu une valeur, à partir d'un autre .cpp, et bien là, la variable me semble vide !
Je n'arrive pas à récupérer son contenu, et c pareil avec un 3ème .cpp.
Ca compile sans problèmes, mais ça marche pas !

mood
Publicité
Posté le 16-07-2001 à 09:43:55  profilanswer
 

n°46871
seblamb
Posté le 16-07-2001 à 09:49:32  profilanswer
 

C'est bizarre que ça compile sans warning.
Tu as surement déclaré ta variable de cette façon dans le .h
 
 int var1;
 
Dans ce cas une variable 'var1' est crée dans chaque cpp où est inclus ton .h
 
il faut mettre dans le .h
 externe int var1;
et mettre dans un et un seul des .cpp
 int var1;


---------------
[:seblamb] Moi aussi je veux grater dédé!!!
n°46881
Willytheki​d
Posté le 16-07-2001 à 10:22:29  profilanswer
 

Non attends...c'est un membre de la classe ?? Je comprends rien a ton histoire ! :)
 
Tu peux nous donner ton code a prb exactement ? :)


---------------
Si t'es pas net, reste a la buvette
n°46904
antsite
Je me souviens
Posté le 16-07-2001 à 11:01:57  profilanswer
 

Ben oui Seblamb, mais si je veux utiliser cette variable dans plusieurs .cpp ?
Voici les codes :
 
le.h :
class SOCK
{
public:
 SOCKET c;
};
 
1er.cpp :
#include "le.h"
 
SOCK sk;
sk.c = socket(AF_INET,SOCK_STREAM,0);
//...Ce cpp marche impec puisque c lui qui crée la socket.
 
2e.cpp (ou il peut pas lire la socket) :
SOCK sock;
send(sock.c,msg,sizeof(msg),0);

n°46913
seblamb
Posté le 16-07-2001 à 11:11:04  profilanswer
 

J'avais pas bien compris mais c'est un problème du même ordre:
 tu crées 2 objets sock différents (sk et sock)  
Tu en initialises 1 mais le deuxieme n'a aucun rapport avec le 1er.  
Pour pouvoir utiliser un objet SOCK dans 2 cpp différent.
il faut que tu déclares dans un et un seul .cpp ( j'insiste lourdement)
SOCK sock;
 
et dans ton .h
extern SOCK sock;
 
extern permet au compilateur de savoir qu'un variable de type SOCK sera présente dans to programme même si elle n'est pas déclaré explicitement dans le .cpp
Le lien avec cette variable se fera au moment du link.


---------------
[:seblamb] Moi aussi je veux grater dédé!!!

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C++] Classes dans .h

 

Sujets relatifs
Utilité des classes en c++[ALGO] Cherche cours sur les classes !
Acceder a des membres de classes en Java....[VB] Utilité des classes ?
Comment à partir d'un projet avoir tout les schéma des classes ....[C++] Problème avec les classes
Plus de sujets relatifs à : [C++] Classes dans .h


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR