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 :
Code :
- #ifndef TRUC
- #define TRUC
- static int z;
- #endif
|
- ma classe essai.h :
Code :
- #ifndef ESSAI
- #define ESSAI
- #include "truc.h"
- #include <iostream>
- using namespace std;
- class essai
- {
- public:
- essai(){};
- void ecrit(){ cout<<z<<endl;;
- };
- #endif
|
- un programme principal test.C :
Code :
- #include "essai.h"
- int main()
- {
- essai H;
- z=5;
- cout<<z<<endl;
- H.ecrit();
- cout<<z<<endl;
- return 0;
- }
|
Le résultat de ce programme est :
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 :
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