Cocos2d-x学习笔记 (2) C++如何创建单例
来源:互联网 发布:广联达规范查询软件 编辑:程序博客网 时间:2024/05/21 17:13
一引言
cocos2d-x的导演类等有shared关键词方法获得的为单例类,就是整个程序就那么一个类的实例,对我这个菜鸟来说,真不会用c++写单例类。
今天参考了下百度
二 代码
#include <iostream>
using namespace std;
class Csingle
{
public:
static Csingle* getSingle();
private:
Csingle(){};
static Csingle *m_pSingle;
};
Csingle* Csingle::m_pSingle = NULL;
Csingle* Csingle::getSingle()
{
if (m_pSingle==NULL)
m_pSingle=new Csingle();
return m_pSingle;
}
void main()
{
Csingle *p=Csingle::getSingle();
getchar();
getchar();
}
红字部分是静态成员初始化,很重要。我就是少了那一个语句老是报错,摸不到头绪,现在恍然大悟!
报错如下:
error LNK2001: 无法解析的外部符号 "private: static class Csingle * Csingle::m_pSingle" (?m_pSingle@Csingle@@0PAV1@A)
三 分析
原理很简单,
1.声明静态的类成员变量,存放那个唯一的实例。
2.用类静态函数创建,然后返回,当然先判断存在否,如果存在就还返回已经存在的那个。
3.最重要的是把构造函数给private了,这样就new不出新实例来了,只能是通过提供的接口函数来获得类的实例对象
- Cocos2d-x学习笔记 (2) C++如何创建单例
- cocos2d-x-3.0学习笔记之如何创建开关菜单
- Cocos2d-x学习笔记一 创建场景
- cocos2d-x学习笔记(2)在同一个工程里创建多个Cocos2d-x项目
- 学习cocos2d-x笔记-2
- cocos2d-x 学习笔记2
- Cocos2d-x学习笔记2
- cocos2d-x学习笔记2
- cocos2D-x 3.x学习笔记【一】 创建新项目
- 【cocos2d-x 3.x 学习笔记】对象创建方式讨论
- 【学习笔记】cocos2d-x 如何创建一个按钮(文本按钮、图片按钮)
- 如何学习 COCOS2D-X ?
- 如何学习Cocos2d-X
- 如何学习cocos2d-x
- 如何学习cocos2d-x
- IOS学习笔记—Objective C—创建单例 .
- Cocos2d-x 学习笔记
- Cocos2d-x学习笔记
- Web报表finereport根据参数将数据存入不同的数据库
- TCP: SYN ACK FIN RST PSH URG 详解
- Spring的反射机制和依赖注入
- 在virtualbox上安装openstack,3网卡配置,无法ping通实例,求解
- Tomcat里 appBase和docBase的区别
- Cocos2d-x学习笔记 (2) C++如何创建单例
- Bitmap
- 常见的不不能声明为虚函数
- apache多站点配置汇总
- 十六进制到二进制(整形到各种进制字符串)
- linux信号祥解
- 用Python监听鼠标和键盘事件
- 迷宫问题 poj 3984 搜索算法 宽搜+dfs回溯
- [证明]一个数能被3整除,当且仅当它的各位数的和能被3整除。