Я пытаюсь реорганизовать свой код, чтобы использовать форвардные объявления вместо включения большого количества заголовков. Я новичок в этом вопросе и задаю вопрос о boost :: shared_ptr.Передовые декларации и shared_ptr
Скажем, у меня есть следующий интерфейс:
#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
Я тогда функцию в другом классе, который принимает объект IStarterPtr в качестве аргумента, скажем:
virtual void addStarter(IStarterPtr starter)
{
_starter = starter;
}
...
IStarterPtr _starter;
как я вперед объявить IStarterPtr без в том числе IStarter.h?
Я использую C++ 98, если это имеет значение.