C ++: неопределенная ссылка на экземпляр в классе Singleton
В настоящее время я пытаюсь реализовать завод как синглтон. Я практически использовал учебный пример синглтон-паттерна. Вот файл .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'
Это в настоящее время имеет три студента в тупик. Есть идеи?