[英]C++ Linker Error Undefined reference in Singleton class [duplicate]
这个问题已经在这里有了答案:
我正在尝试将此java单例类移植到c ++:
public class Singleton {
private static Singleton uniqueInstance;
private Singleton() {}
public static Singleton getInstance() {
if (uniqueInstance == null) {
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
}
我移植到此C ++代码:
class Singleton {
private:
Singleton() {
cout << "new Singleton is called" << endl;
}
static Singleton* uniqueInstance;
public:
static Singleton* getInstance() {
if (!uniqueInstance) {
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
};
但是我不能编译这个! 和gcc链接器错误发生。
确保在声明之外定义static
成员:
Singleton* Singleton::uniqueInstance = nullptr;
您的cpp文件可能没有为静态实例保留空间,您需要添加Singelton* Singleton::uniqueInstance = NULL;
到您的cpp文件,然后在第一个调用中分配它
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.