One of classes in my program uses some third-party library. Library object is a private member of my class:
// My.h #include <3pheader.h> class My { ... private: 3pObject m_object; }
The problem with this – any other unit in my program that uses My class should be configured to include 3p headers. Moving to another kind of 3p will jeopardize the whole build… I see two ways to fix this – one is to is to make 3pObject extern and turn m_Object into a pointer, being initialized in constructor; second is to create an ‘interface’ and ‘factory’ classes and export them…
Could you suggest another ways to solve that ?
Use the ‘pimpl’ idiom: