首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个关于生命周期的有关问题

2012-04-13 
一个关于生命周期的问题先上原代码:#include iostream#include stringusing namespace stdclass Sing

一个关于生命周期的问题
先上原代码:


#include <iostream>
#include <string>

using namespace std;

class Singleton{
public:
Singleton();
~Singleton();
static Singleton singleton;
int num;
};

Singleton Singleton::singleton;

Singleton::Singleton(){
cout << "Singleton()" << endl;
this->num = 100;
cout << "num : " << Singleton::singleton.num << endl;
}

Singleton::~Singleton(){
cout << "~Singleton()" << endl;
}

void function1(){
cout << "function1..." << endl;
Singleton::singleton.num = 10;
cout << "num : " << Singleton::singleton.num << endl;
}

void function2(){
cout << "function2..." << endl;
cout << "num : " << Singleton::singleton.num << endl;
}

int main(){
function1();
function2();

return 0;
}

结果:
Singleton()
100
num : 100
main...
function1...
num : 10
function2...
num : 10
~Singleton()

问题是: 
Singleton的实例化是靠得Singleton Singleton::singleton; 这句话么? 能解释一下这句话的意义么? 这是单例(可能不是很准确)?

[解决办法]
google "类的静态成员变量"
[解决办法]
1.你访问一个类的静态成员变量是不需要实例话这个类的

2.Singleton Singleton::singleton这句话的意思就是你访问了Singleton类里面的一个静态成员而已。
就像 Time Time::Now 一样

3.不知道你说的单例是不是指单键模式,一般单键模式不是这样写的

热点排行