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.hnamespace MyProjet{
namespace ApplicationA{
class MyAppAWindow{
};
class MyAppAVarType{
};
}
}
fichier
mypoject_applicationa_b.hnamespace MyProjet{
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.hnamespace MyProjet{
namespace ApplicationA{
class MyAppAWindow:
public MyProjet::Global{
};
class MyAppAVarType{
};
}
}
fichier
mypoject_applicationa_b.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 :
fichier
mypoject_applicationa_global.hnamespace MyProjet{
class Global;
}#include mypoject_applicationa_a.h
#include mypoject_applicationa_b.h namespace MyProjet{
class Global{
static ApplicationA::MyAppAVarType * varA;
static ApplicationB::MyAppAVarType * varA;
}
}
fichier
mypoject_applicationa_b.hnamespace MyProjet{
namespace ApplicationB{
class MyAppBVarType;
}
}#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{
};
}
}
Si quelqu'un peut me dire comment faire, ça serait super super cool
Ou me donner une méthode pour faire l'équivalent....
Great Thanks
RV
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"