Portée d'un objet créer

Résolu
Nixeus Messages postés 192 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 19 octobre 2020 - 19 avril 2007 à 16:38
Nixeus Messages postés 192 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 19 octobre 2020 - 20 avril 2007 à 11:13
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

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
19 avril 2007 à 20:57
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;
3
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
19 avril 2007 à 21:07
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
3
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
19 avril 2007 à 19:47
Déclare ton objet en extern.

Shell
0
Nixeus Messages postés 192 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 19 octobre 2020
19 avril 2007 à 20:12
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  :(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nixeus Messages postés 192 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 19 octobre 2020
19 avril 2007 à 23:48
Merci a tous :)
Je vais tester ca :)
Merci beaucoup!
0
Nixeus Messages postés 192 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 19 octobre 2020
20 avril 2007 à 11:13
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
0
Rejoignez-nous