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
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 };
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:
ç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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 };
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.
![]()
Partager