我目前正在尝试将工厂实现为单例。我实际上使用了单例模式的教科书示例。这是.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”的引用
目前这让三名学生难倒。有任何想法吗?