[conception] dépendances de bibliothèques et headers
Bonjour tout le monde,
j'ai un problème tout bête mais je ne parviens pas à trouver une solution élégante. C'est pourquoi je m'en remet à vous :)
Soit un programme P qui utilise une bibliothèque statique L1.lib.
La lib L1 définit une classe CL1 dans le fichier CL1.h.
La class CL1 utilise une classe CL2 définie dans CL2.h et appartenant à la lib CL2.lib.
Voici à quoi pourrait ressembler CL1.h
Code:
1 2 3 4 5 6 7 8 9
| #include "CL2.h"
class CL1
{
// des fonctions, constructeurs, destructeurs, etc.
private:
CL2 monCL2; //une instance de CL2
}; |
Le problème qui se pose ici, c'est que dans mon programme P, lorsque je vais inclure CL1.h, il va m'inclure également CL2.h.
Or, ce que je voudrais, c'est que lorsque j'ai compilé CL1, je n'ai plus besoin du tout de CL2 pour P. Idéalement, j'aimerais que P n'ait même pas à ce soucier de l'exitence de CL2.
Ce qui m'intrigue, c'est qu'en essayant de résoudre ce problème, on se retrouve confronté à des aberrations. Par exemple, si je modifie CL1.h ainsi:
Code:
1 2 3 4 5 6 7 8 9
| class CL2;
class CL1
{
// des fonctions, constructeurs, destructeurs, etc.
private:
CL2* pMonCL2; //un pointeur sur une instance de CL2
}; |
ça ne me convient pas car si j'avais déclaré CL2 en variable membre par valeur, c'est qu'il y a une raison.
En fait donc, j'aimerais avoir quelques conseils sur la création de lib statique, afin que l'utilisation de cette lib soit la plus simple possible.
:merci: