我有一个带有静态函数getSharedInstance的类,因此应该给我一个指向已经实例化的类的指针.
标题:
class foo {
public:
static foo *getSharedInstance();
private:
static foo *sharedInstance;
}
Run Code Online (Sandbox Code Playgroud)
执行:
foo *foo::getSharedInstance() {
if(sharedInstance == NULL)
sharedInstance = new foo();
return sharedInstance;
}
Run Code Online (Sandbox Code Playgroud)
我不明白的一点是,为什么我得到对变量sharedInstance的未定义引用?
你必须在某处实例化(通常在你的类'cpp文件中):
foo *foo::sharedInstance;
Run Code Online (Sandbox Code Playgroud)
编译器假定它将在某处找到符号(即表示您的实例的指针).但是,如果你没有定义它,它就不会找到它并因此提高undefined reference