我试图重构我的代码,使用前向声明而不是包含大量头文件。我对此很陌生,并且有关于boost::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;
如何在不包含IStarter.h的情况下前向声明IStarterPtr?
如果有关系,我正在使用C++98。