L'une des classes de mon programme utilise une bibliothèque tierce. objet bibliothèque est un membre privé de ma classe:En-têtes C++ - séparation entre l'interface et les détails d'implémentation
// My.h
#include <3pheader.h>
class My
{
...
private:
3pObject m_object;
}
Le problème avec cette - toute autre unité dans mon programme qui utilise Ma classe doit être configuré pour inclure 3p têtes. Passer à un autre type de 3p mettra en danger toute la construction ... Je vois deux façons de résoudre ce problème - l'une consiste à faire 3pObject extern et à transformer m_Object en un pointeur, en cours d'initialisation dans le constructeur; la deuxième est de créer une "interface" et "usine" classes et les exporter ...
Pourriez-vous suggérer une autre façon de résoudre ce problème?
Une raison de ne pas utiliser boost :: scoped_ptr? – grigy
Rien de spécifique - J'ai été habitué à utiliser auto_ptr - il est probablement plus approprié dans ce cas d'utiliser scoped_ptr car il n'y a pas de transfert de propriété –