您的位置:首页 > 其它

对于静态成员指针的出现的问题

2009-01-16 23:29 274 查看
今天复习设计模式的时候,自己动手写个个小的Singleton模式的简单实现,如下:

class Singleton

{

private:

static Singleton* mInstance;

Singleton();

public:

static Singleton* getInstance();

};

Singleton::Singleton() {}

Singleton* Singleton::getInstance()

{

if(NULL==mInstance)

{

mInstance = new Singleton;

}

return mInstance;

}

编译一下,发现编译可以通过。但是链接程序的时候曝出错误:无法解析的外部符号 mInstance

后来查了一下才发现,对于静态的成员指针必须先做初始化:

Singleton* Singleton::mInstance=NULL;

类似C#中的内联初始化。

而且静态成员指针的初始化不能写在构造函数的 初始化列表中。

真是动手编程序的时候能够发现知识的缺口啊。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐