• 4827阅读
  • 3回复

一个单例模式的问题,非QT,请大家帮忙解答一下。 [复制链接]

上一主题 下一主题
离线radium_sql
 

只看楼主 正序阅读 楼主  发表于: 2008-09-04
— 本帖被 XChinux 执行加亮操作(2008-09-10) —
实现一个单例模式,注意加红色的字体部分

#include <iostream>
using namespace std;

class Singleton
{
public:
    static Singleton* Instance();

protected:
    Singleton();

private:
    static Singleton* _instance;
};

//如果我把下面这一行注释掉,则程序编译出错,说没有定义的引用.....为什么。。。。

Singleton* Singleton::_instance = 0;  //这一行怎么可以在外面访问呢,它是private访问级呀
Singleton::Singleton()
{
    cout<<"Singleton...."<<endl;
}

Singleton* Singleton::Instance()
{
    if (_instance == 0)
    {
        _instance = new Singleton();
    }
    return _instance;
}

int main(int argc,char* argv[])
{
    Singleton* sgn = Singleton::Instance();
    return 0;
}


QT什么时候替代MFC?
离线water_wf

只看该作者 3楼 发表于: 2008-09-04
我还是建议你看看c++的语法书吧,上面描述更精确
离线radium_sql

只看该作者 2楼 发表于: 2008-09-04
引用第1楼water_wf于2008-09-04 15:32发表的  :
c++的最基本问题,static 变量要在类体外定义

能解释一下那个访问符的问题吗?
QT什么时候替代MFC?
离线water_wf

只看该作者 1楼 发表于: 2008-09-04
c++的最基本问题,static 变量要在类体外定义
快速回复
限100 字节
 
上一个 下一个