我試圖重構我的代碼,以便使用前向聲明而不是包含大量標頭。我是新來的,有一個關於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。