Je veux cacher une implémentation dans le fichier d'implémentation. Si l'objet n'est pas public, je ne veux pas que l'en-tête de l'objet fuit partout où ma classe est utilisée.
Supposons que j'ai un fichier d'en-tête A.h
pour ma classe A
:
#include "Foo.h"
class A{
private:
Foo foo;
public:
do_stuff();
};
Maintenant, partout où je voudrais inclure A.h
, Foo.h
seraient également inclus. Mais je n'ai aucune utilité pour la classe Foo
n'importe où en dehors de la classe A
. Je préfère ne pas avoir cela #include "Foo.h"
ligne. Existe-t-il un moyen de déplacer la déclaration de la variable 'foo' à l'intérieur de l'implémentation ? A.cpp
?
Je soupçonne qu'une solution possible consiste à ajouter une couche de classe abstraite (analogie avec une interface). Est-ce la meilleure solution ?
Merci.