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

 


Dernière réponse
Sujet : [C++] Classes dans .h
seblamb 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.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
seblamb 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.
antsite 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);
Willythekid Non attends...c'est un membre de la classe ?? Je comprends rien a ton histoire ! :)
 
Tu peux nous donner ton code a prb exactement ? :)
seblamb 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;
antsite 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 !

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)