現在、ファクトリをシングルトンとして実装しようとしています。シングルトン パターンの教科書の例を実際に使用しました。.h ファイルは次のとおりです。
namespace oxygen{
class ImpFactory{
public:
static boost::shared_ptr<ImpFactory> GetInstance();
private:
static boost::shared_ptr<ImpFactory> mInstance;
};
.cpp ファイルは次のとおりです。
#include "impfactory.h"
using namespace oxygen;
using namespace boost;
shared_ptr<ImpFactory> ImpFactory::GetInstance(){
if (mInstance.get() == 0)
mInstance = shared_ptr<ImpFactory>(new ImpFactory());
return mInstance;
}
コードはコンパイルされますが、リンカー エラーが発生します。
../../lib/oxygen/liboxygen.so.3.2.4: `oxygen::ImpFactory::mInstance' への未定義の参照
これには現在、3人の学生が困惑しています。何か案は?