Bonjour,
Je rencontre un problème pour lire une variable statique de ma classe singleton "model".
En effet dans cette classe, je declare:
.h:
.c:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public: static int maVariable; int getVariable() void setVariable(int *p_varaible)
Jusque la, aucun problème. Mon constructeur et destructeur sont bien privé et mon instance n'est créée qu une seule fois (principe du singleton).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 int maVariable; int model::getVariable() { return maVariable; } void model::setVariable(int *p_varaible) { maVariable = *p_variable; } model* model::getInstance() { if ( NULL == instance ) { instance = new model(); } return instance; };
Le problème est lors de l'accès à ma variable. Lorsque j'initialise ma variable dans une classe donnée et que je lis cette même variable dans la même classe, aucun problème. Le problème est lorsque je veux relire la variable initialisée dans la classe précédente dans une autre classe, model::getVariable() retourne "0". Je recupère bien l'instance avant d'accéder à ma variable dans l'autre classe avec getInstance().
J'ai essayé avec une variable "en dur" dans ma classe et pas de problème (ce qui est normale).
Je veux accéder à cette variable dans n'importe quelle classe de mon projet d'où cette question:
Le singleton est il bien fait pour ce type de problème?
Est il préférable d'utiliser un segment commun (dataseg) pour ce type de problème?
D'où pourrait venir le problème?
Je vous remercie.
Partager