私は多くのヘッダーを含める代わりに前方宣言を使用するように私のコードをリファクタリングしようとしています。私はこれを初めて知り、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を使用していますが、それは関連性があります。