RV2931
Messages postés184Date d'inscriptionsamedi 21 mai 2005StatutMembreDernière intervention16 juillet 2016
-
26 févr. 2009 à 10:36
RV2931
Messages postés184Date d'inscriptionsamedi 21 mai 2005StatutMembreDernière intervention16 juillet 2016
-
26 févr. 2009 à 13:13
Bonjour,
Je cherche une solution pour définir des variables globales dans des namespace. J'ai pensé à un truc qui serait assez génial mais je n'arrive pas à l'implémenter et du coup, je me demande si c'est possible.
mon architecture d'application est basée sur les namespace telle que :
fichier mypoject_applicationa_a.h namespace MyProjet{
namespace ApplicationA{
class MyAppAWindow{
};
class MyAppAVarType{
namespace ApplicationB{
class MyAppBWindows{
};
class MyAppBVarType{
};
}
}
L'idée serait de définir une classe statique dans le namespace "parent" MyProject telle que :
fichier mypoject_applicationa_global.h #include mypoject_applicationa_a.h
#include mypoject_applicationa_b.h
namespace MyProjet{
class Global{
static ApplicationA::MyAppAVarType * varA;
static ApplicationB::MyAppAVarType * varA;
}
}
et de faire en sorte que toutes les classes qui ont besoin des variables globales héritent de cette classe, et puisse même dériver la class Global pour ajouter leur propre variables globales propres à leur namespace, telle que :
fichier mypoject_applicationa_a.h #include mypoject_applicationa_global.h namespace MyProjet{
namespace ApplicationB{
class Global: public MyProjet::Global{
static MyAppBVarType myOwnGlobalVar;
}
class MyAppBWindows:public MyProjet::ApplicationB::Global{
};
class MyAppBVarType{
};
}
}
est-ce possible ? comment faire ???
J'ai pas mal d'erreurs de namespace non déclarés, de variables dont le type n'est pas défini, ...
Je pense qu'il y a une méthode pour déclaré les namespaces et class avant d'inclure les fichiers qui en ont besoin puis ensuite les définir mais je trouve pas trop, je me perds....
Genre :
RV2931
Messages postés184Date d'inscriptionsamedi 21 mai 2005StatutMembreDernière intervention16 juillet 2016 26 févr. 2009 à 13:13
Ok, bon au final, mon code fonctionne plus ou moins.
il manquait juste l'initialisation des variables juste avant le main :
#include mypoject_applicationa_global.h MyProjet::MyAppAVarType *varA=NULL;
MyProjet::MyAppBVarType *varB=NULL;
void main(){
}
Par contre, l'histoire de dériver toutes mes classes avec Global ne semble pas fonctionner.
il me met, "error: invlaid use of undefined type 'struct MyProjet::Global'" et "error: forward declaration of 'struc MyProjet::Global'"
Il le voit en tant que struct ??!!??
Comment faire fonctionner cela en héritage multiple ??
Merci
L'intelligence est la chose la mieux répartie chez l'homme, car quoi qu'il en soit pourvu, il a toujours l'impression d'en avoir assez. "Descartes"