我正在尝试重构我的代码,以便我使用前向声明而不是包含大量标题。我是新手,对 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。