cocos2dx中的Director类中的getInstance()方法解析,即单例模
//.h文件
#include <iostream>
//数学与逻辑学中singleton定义为“有且仅有一个元素的集合”。
class Singleton{
public:
static Singleton* getInstance();
private:
Singleton();
~Singleton();
static Singleton* instance;
};
//.cpp文件
#include "Singleton.h"
using namespace std;
Singleton::Singleton(){
cout<<"Create Singleton"<<endl;
}
Singleton::~Singleton(){
cout<<"Destroy Singleton"<<endl;
}
Singleton* Singleton::instance = new Singleton();
Singleton* Singleton::getInstance(){
return instance;
}
在头文件中把构造函数和析构函数声明在private下面,是为了不能使用new在类的外部生成一个对象。但是,在public中的用静态成员函数getInstance(),生成该类的唯一对象。该成员函数是回调了该类的静态Singleton*类型的成员变量instance,而变量instance则在类的实现部分赋值了一个Singleton对象,从而实现了单例对象的创建。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |