C++单例模式主要用途就是整个程序中只实例化一个对象,之后获取到的都是该对象本身进行处理问题。

单例模式一般都是在函数中采用局部静态变量完成的,因为局部的静态变量生命周期是随着程序的生命周期

一起结束,所以不用担心会失效。另外局部的静态变量作用域仅限于该函数内部,别的函数不会直接使用。

第三点就是局部的静态变量跟所有的静态变量一样,放在全局区(静态区),只被初始化一次。

下面是我结合模板设计的单例类

#ifndef _SINGLETON_CLASS_H_
#define _SINGLETON_CLASS_H_ template <class Type>
class Singleton
{
protected :
Singleton(){} public:
static Type & getSingleton()
{
return singleton;
} private: Singleton(const Singleton & temp){
singleton = temp.singleton;
} private:
static Type singleton;
}; template <class Type>
Type Singleton<Type>::singleton; #endif

其余的类继承就可以了。

需要注意类的静态成员变量,如果不是integer type,需要在类外完成初始化。

int属于integer type,在类内可以完成初始化。

其余的类继承该类:

class NetWorkSystem : public Singleton<NetWorkSystem>
{
public:
NetWorkSystem():m_nListenfd(),m_pEvent_base(NULL),m_nConnId(){}
bool initial();
static void tcpread_cb(struct bufferevent *bev, void *ctx);
static void tcpwrite_cb(struct bufferevent *bev, void *ctx);
static void tcperror_cb(struct bufferevent *bev, short what, void *ctx);
static void listener_read_cb(evutil_socket_t fd, short what, void *p);
void run();
void release();
//... };

使用时使用getsinggleton这个函数即可。

这是我服务器中截取的代码,可以从github中下载该服务器源码。

下载地址:https://github.com/secondtonone1/smartserver

服务器自己做的,还在不断地完善之中。

我的微信公众号平台:

最新文章

  1. Hadoop学习笔记—6.Hadoop Eclipse插件的使用
  2. asp.netajax开发应用心得-accordation控件的事件处理
  3. c#的问号?和双问号??
  4. React Native微信分享 朋友圈分享 Android/iOS 通用
  5. pyMagic:用python控制的Geek入门神器
  6. css3mediaquery移动端网页字体适应屏幕代码
  7. docker-py的配置与使用
  8. POJ 2125 Destroying The Graph (二分图最小点权覆盖集+输出最小割方案)
  9. php将数据库导出成excel的方法
  10. POJ-1177 Picture 矩形覆盖周长并
  11. sql 常用语法汇总
  12. 模拟springmvc 内部登陆,跳过spring filter
  13. css选择器的优先级别
  14. Linux下的视频字幕编辑
  15. 字典的定义和操作 (Python)
  16. 使用grafana provisioning通过配置方式添加datasource和dashboard
  17. hbase-写操作
  18. [转]Java Web笔记:搭建环境和项目配置(MyEclipse 2014 + Maven + Tomcat)
  19. Springboot整合二 集成 rabbitmq
  20. jquery promise (Deferred)

热门文章

  1. Pvmove中断后恢复LV状态
  2. Paper Reading - Mind’s Eye: A Recurrent Visual Representation for Image Caption Generation ( CVPR 2015 )
  3. hbase中balance机制
  4. CSS3 使用 calc() 计算高度 vh px
  5. static块的本质
  6. Beta结束感想
  7. shit Rap &amp; mock api
  8. UVA11653_Buses
  9. 通过父类定位到子类 先将父类当作一个dom
  10. Using the command line to manage files on HDFS--转载