Forward-Deklarationen und shared_ptr
Ich versuche, meinen Code so umzugestalten, dass ich Forward-Deklarationen verwende, anstatt viele Header einzuschließen. Ich bin neu in diesem Bereich und habe eine Frage zu boost :: shared_ptr.
Angenommen, ich habe die folgende Schnittstelle:
#ifndef I_STARTER_H_
#define I_STARTER_H_
#include <boost/shared_ptr.hpp>
class IStarter
{
public:
virtual ~IStarter() {};
virtual operator()() = 0;
};
typedef boost::shared_ptr<IStarter> IStarterPtr;
#endif
Ich habe dann eine Funktion in einer anderen Klasse, die ein IStarterPtr-Objekt als Argument nimmt, sagen wir:
virtual void addStarter(IStarterPtr starter)
{
_starter = starter;
}
...
IStarterPtr _starter;
Wie kann ich IStarterPtr weiterleiten, ohne IStarter.h einzuschließen?
Ich verwende C ++ 98, wenn das relevant ist.