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.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage