单例类主要是为了防止重复的定义类实例,这样在整个程序中就只有一个类实例,cocos2d就是采用的单例模式
为了保证类实例只能产生一个,那么类构造函数就必须写成私有的,这样,在类外就不能调用构造函数构造新实例
第一种方式:
//静态方法也是保证单例的条件之一
1 class Temp 2 { 3 private: 4 Temp(){} 5 private: 6 static Temp instance; 7 public: 8 static Temp getInstance() 9 { 10 return instance; 11 } 12 };
第二种方式:
1 class Temp1 2 { 3 private: 4 static Temp1 *instance; 5 private: 6 Temp1() 7 { 8 instance = nullptr; 9 } 10 public: 11 static Temp1 *getInstance() 12 { 13 if (instance == nullptr) 14 { 15 instance = new Temp1(); 16 } 17 return instance; 18 } 19 };
原文地址:http://www.cnblogs.com/leisc/p/3836536.html