J'ai codᅵ ma propore librairie de fonctions C, qui me servent
rᅵguliᅵrement et dont je me sert dans mes diffᅵrents projets.
Cependant, il y a une question ᅵ laquelle je n'ai jamais pu rᅵpondre :
comment font les autres dᅵveloppeurs (je programme en dilettante,
dᅵbuttant en c++. Ce n'est pas mon mᅵtier) chevronnᅵs pour organiser
leur sources.
Plus particuliᅵrement, le fichier d'en-tᅵte qui servira ᅵ inclure dans
d'autre projets. Un exemple sera peut-ᅵtre plus parlant pour prᅵciser
ma pensᅵe. Soit une classe qu'on souhaite exporter. Voici comment je la
dᅵclare dans le fichier library.h (fichier qui servira lors de
l'utilisation de la lib).
#ifdef LIB_EXPORTS
#define LIB_API __declspec(dllexport)
#else
#define LIB_API __declspec(dllimport)
#endif
class LIB_API foo {
private:
int x;
public:
foo(void);
};
Le pb, c'est que je ne souhaite pas que mes membres private soient
visiblent pour l'utilisateur de la lib.
Les "meilleurs pratiques" indiquent-elles qu'il faut ᅵcrire 2 fois le
fichier en-tᅵte (1 pour la compil de la lib, l'autre pour
l'utilisation).
Merci de cos conseils
> class LIB_API foo {
> private:
> int x;
> public:
> foo(void);
> };
>
> Le pb, c'est que je ne souhaite pas que mes membres private soient
> visible[s] pour l'utilisateur de la lib.
C'est normal.
> Les "meilleurs pratiques" indiquent-elles qu'il faut �crire 2 fois le
> fichier en-t�te (1 pour la compil de la lib, l'autre pour
Les meilleures pratiques, ici, c'est le parefeu de compilation, ou
/pimpl idiom/.
On coupe l'objet en deux, un public et un priv�; l'objet public, le
seul connu des utilisateurs, contient uniquement un pointeur vers
l'objet priv�.
--
___________
_/ _ \_`_`_`_) Serge PACCALIN -- sp ad mailclub.net
\ \_L_) Il faut donc que les hommes commencent
-'(__) par n'�tre pas fanatiques pour m�riter
_/___(_) la tol�rance. -- Voltaire, 1763
Merci de votre rᅵponse. J'ai commencᅵ ᅵ regarder les quelques rᅵsultats
fournis par Google sur le sujet, ᅵa n'a pas l'air trivial, vue de mon
niveau. Je vais tout de mᅵme essayer de me lancer et de m'y tenir.