Portée d'un objet créer [Résolu]

Signaler
Messages postés
192
Date d'inscription
jeudi 18 janvier 2007
Statut
Membre
Dernière intervention
19 octobre 2020
-
Messages postés
192
Date d'inscription
jeudi 18 janvier 2007
Statut
Membre
Dernière intervention
19 octobre 2020
-
Bonjour,

Grosse question de newbie j'avoue, mais je rencontre un problème.
Le logiciel que je développe, doit se voir créer un seul et unique Objet "CGestionBd", permettant des opération sur base de donnée.
Je souhaiterais que cet objet soit accessible partout, et surtout , dans des autres classe de mon application.

J'ai donc créé cet objet dans le .h en public de la classe dlg de ma boite de dialogue.
Mais l'objet créer n'ai pas disponible dans mes autres classes

-->erreur : Undeclared Identifier !

Je suis sous visual C++6

Le problème est bete je sais, mais je suis bloqué !

Merci a tous !

6 réponses

Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Tu déclares ta variable globale dans n'importe quel .cpp sans le mot clef externe, et tu précises dans les .h que cette variable est "extern".

.h:

extern int value;

.cpp:

int value = 14;
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
En gros ca donne ca :

------- Main.cpp ------
#include ...

TYPEOBJET monObjet; // Tu déclares l'objet en global

int main(...)
{
...
}

---- MaClasse.h ----
#include ...
extern TYPEOBJET monObjet;  // Tu indiques que l'objet est extern

class MACLASSE {
   ...
};

---- MaClasse.cpp ----
int uneFonction(...)
{
   monObjet.laPropriété = uneValeur; // Tu utilises ton objet comme voulu
}

Shell
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Déclare ton objet en extern.

Shell
Messages postés
192
Date d'inscription
jeudi 18 janvier 2007
Statut
Membre
Dernière intervention
19 octobre 2020

Merci pour la réponse,

Je viens de me renseigner sur le mot clé extern, j'ai donc compris qu'il fallais déja créer l'objet ( mais le créer ou !!! ?)

Puis pour réutiliser cet objet, la, utiliser extern

Je pense avoir fais la bonne manoeuvre et pourtant jai une erreur de link  :(
Messages postés
192
Date d'inscription
jeudi 18 janvier 2007
Statut
Membre
Dernière intervention
19 octobre 2020

Merci a tous :)
Je vais tester ca :)
Merci beaucoup!
Messages postés
192
Date d'inscription
jeudi 18 janvier 2007
Statut
Membre
Dernière intervention
19 octobre 2020

Merci beaucoup à vous deux !
Ca fonctionne niquel !
Dommage que cet objet global ne soit pas visible dans l'onglet classview, mais sinon nikel :)

Je n'avais, pas trop envie de me lancer dans le singleton, car je n'ai jamais fais ca !
Merci