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

  FORUM HardWare.fr
  Programmation

  [C++] classe statique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] classe statique

n°36830
sanglier04
Posté le 04-06-2001 à 13:58:57  profilanswer
 

voila, j'aimerais partager plusieurs variables et fonctions entre plusieurs fichiers, j'ai donc cree une classe statique :
 
 
static class VarGlobale  
{
private:
 
 SOCKET s;      
 
 SOCKET ConnectToServer ();
 
 int SendData (const char*, unsigned int);
 int RecvData (char*, unsigned int);
 
 
public:
 
 VarGlobale ();
 virtual ~VarGlobale ();
 
 BOOL TestConnexion ();
 
 char NomServeur  [LNOM_S+1],
  IpServeur  [LIP_S],
  BufferTabJoueur         [LBUFF_J],
  BufferJoueurLocal       [LBUFF_J/MAX_J],
  BufferTabEquipe         [LBUFF_E];
   
 struct hostent* hpClient;
 struct hostent* hpServeur;      
} Var;
 
j'inclue le fichier .h (ci dessus ) dans chacun de mes .cpp
 
le programme passe a la compilation sans erreures ni warning mais lors de l'execution je m'appercoie que les variables ne sont pas partager :(
 
est ce ma classe qui deconne ou faut'il faire d'une autre manière pour partager ses variables ??

mood
Publicité
Posté le 04-06-2001 à 13:58:57  profilanswer
 

n°36835
verdoux
And I'm still waiting
Posté le 04-06-2001 à 14:48:09  profilanswer
 

Ca existe les classes statiques ?

n°36837
youdontcar​e
Posté le 04-06-2001 à 15:00:13  profilanswer
 

yep bizarre j'ai jamais vu ça ... apparemment l'inclusion de ton .h dans chaque .cpp créé à chaque fois une nouvelle instance statique.
 
si tu veux partager des membres, tu peux les déclarer statiques au sein de la classe (ie static SOCKET s;).
 
si tu veux tout partager, créé une instance globale dans un .cpp et déclare là avec extern dans ton .h pour la partager avec le reste du projet.

n°36846
n0mad
inscrit au XXe siècle
Posté le 04-06-2001 à 16:57:11  profilanswer
 

Il faut faire un singleton : c'est bien plus propre et evolutif, crois moi (sous-classe) :
 
* Constructeur protégé
* methode statique qui rend/crée l'unique instance de la classe

 

[edit]--Message édité par n0mad--[/edit]


---------------
Pipiru piru piru pipiru pi
n°36892
sanglier04
Posté le 04-06-2001 à 21:31:59  profilanswer
 

mercie !
 
en me basant sur vos conseils voila ce que j'ai fait :
 
-> dans le fichier principale j'ai inclue un .h contenant le code que j'ai marquer ci dessus.
 
-> dans les autres fichiers j'ai inclue la definition des classes en mettant un extern devant.
 
ca marche bien, mais j'aimerais savoie si ma méthode est bonne ??

n°36920
BENB
100% Lux.
Posté le 05-06-2001 à 08:58:40  profilanswer
 

Verdoux a écrit a écrit :

Ca existe les classes statiques ?




 
Je pense que c'est comme les fct statiques, elles ne sont visibles que depuis le fichier ou elles sont definies

n°36923
verdoux
And I'm still waiting
Posté le 05-06-2001 à 09:14:43  profilanswer
 

gcc me dit:
`static' can only be specified for objects and functions

n°36939
BoB_Xygene
Posté le 05-06-2001 à 10:00:41  profilanswer
 

Le singleton semble une solution propre.
 
mais d'aprés mes souvenirs les données statiques de la classe doivent étres preprototypées dans les fichiers d'implémentation ce qui gonfle sérieusement le travail.
 
arf langage quand tu nous tiens!

n°37087
sanglier04
Posté le 05-06-2001 à 16:37:34  profilanswer
 

mercie pour vont conseil, ya tout qui marche bien  , c cool :)


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

  [C++] classe statique

 

Sujets relatifs
[java] sous classeJava: La meta classe Class
Classe graphe en C++ et utilisation de STL[java] la classe Class
HTML : Image de fond statiqueHTML : Image de fond statique
[Win32 VisualC++] classe Win32 "SysDateTimePick32"JAVAP décompiler ==> Classe non trouvée !!!! ????????
c++: classe et callback d'une classeCLASSE EN VB !! help !!!
Plus de sujets relatifs à : [C++] classe statique


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