Comment surcharger une API
Bonjour à tous,
Voici ma problématique:
Je souhaite créer une dll de Base à tous mes projets, appelons là Common.
Bien-sur, je ne vais pas réinventer la std ou autre lib.
J'aimerai justement choisir une api (Poco ou Qt dans mon cas) et surcharger toutes les classes que je risque d'utiliser dans mes projets.
Mes projets ne doivent pas avoir connaissance de l'api choisie. Ce qui me permettra dans le futur de changer facilement d'api par une autre en modifiant seulement le projet Common.
Quelle est la meilleur méthode?
- utiliser des #define dans tous les sens
- surcharger les classes qui m'interesse
J'opte pour le moment pour la 2eme solution
Je rencontre le souci suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
Fichier MaClasseSurchargee.h
#include "API/NamespaceA/ClasseA.h"
namespace Common
{
namespace NamespaceA
{
class Common_API ClasseA: public API::NamespaceA::ClasseA
{
};
} //NamespaceA
} //Common |
Si j'inclue MaClasseSurchargee dans un autre projet de plus haut niveau.
Ce projet à besoin de savoir où se trouve:
"API/NamespaceA/ClasseA.h"
Et je ne veux pas lui donner l'info
Et malheureusement je ne peux pas écrire:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
namespace API
{
namespace NamespaceA
{
class ClassA;
}
}
namespace Common
{
namespace NamespaceA
{
class Common_API ClasseA: public API::NamespaceA::ClasseA
{
};
} //NamespaceA
} //Common |
Comment m'en sortir?
Je suis sur qu'il y a une solution simple.