Accès à une variable statique [Résolu] - C++ - Programmation
Marsh Posté le 08-01-2007 à 15:20:16
Il est horrible ton truc.h, les variables globales, au secours quoi.
Met ton z en statique de classe , ca devrait déjà mieux aller.
Marsh Posté le 08-01-2007 à 15:26:42
_darkalt3_ a écrit : Il est horrible ton truc.h, les variables globales, au secours quoi. |
Euh... Comme j'ai dit, je peux pas modifier le truc.h...
Marsh Posté le 08-01-2007 à 15:47:23
normal, ton z est static, donc privé à chaque unité de compilation.
Marsh Posté le 08-01-2007 à 16:46:09
Bon, j'ai réussi à contourner le problème en pointant sur la variable statique initialisée :
- une classe non modifiable truc.h :
Code :
|
- ma classe essai.h :
Code :
|
- un programme principal test.C :
Code :
|
Le résultat donne bien :
Citation : 5 |
Espérons que ça marche aussi dans la vraie vie...
Marsh Posté le 08-01-2007 à 16:57:04
ReplyMarsh Posté le 12-01-2007 à 11:31:43
t'as rien compris. voir mon message précédent. Il n'y a aucun problème, juste une incompréhension de ta part. Et ton contournement ne contourne rien et donne le même problème : un z par unité de compilation.
Marsh Posté le 08-01-2007 à 15:10:16
Salut,
Je comprends pas bien ce qui m'arrive : j'ai une variable statique définie dans une classe que je ne peux pas modifier. J'ai également une classe censée faire des opérations sur cette variable, ainsi qu'un programme qui doit aussi y accéder. Simplifiées au maximum, les choses se passent en gros comme ça :
- une classe non modifiable truc.h :
- ma classe essai.h :
- un programme principal test.C :
Le résultat de ce programme est :
5
0
5
D'où mon incompréhension : pourquoi ma classe essai n'a-t-elle pas accès au même contenu de z que le programme test ? Il y aurait deux objets z ??? Et si je déplace le z=5 dans le constructeur de la classe essai, le résultat est exactement le même :
5
0
5
Quelqu'un peut m'expliquer, parce que là ça me fout dans la merde...
Merci.
PS : Tiens, y'a pu de couleur dans les codes ?
Message édité par SkippyleGrandGourou le 08-01-2007 à 16:57:36