当前位置: 首页 > news >正文

企业网站设计师南宁企业网站排名优化

企业网站设计师,南宁企业网站排名优化,做网站卖高仿,网站本地环境搭建如果需要一个全局对象#xff0c;如对话框、系统日志、显卡等设备的驱动程序对象、一台PC连接一个键盘等。这样的全局对象只能是一个且是全局的#xff0c;这就是单例模式#xff0c;如何实现呢#xff1f;1 不能在类外部通过构造函数新建对象#xff1a;构造函数的访问方…如果需要一个全局对象如对话框、系统日志、显卡等设备的驱动程序对象、一台PC连接一个键盘等。这样的全局对象只能是一个且是全局的这就是单例模式如何实现呢1 不能在类外部通过构造函数新建对象构造函数的访问方式设置为private或protected。同时拷贝构造函数和赋值运算符也是私有的以禁止拷贝和赋值。2 能够通过调用一个成员函数来实例化一个对象成员函数设置为static这样可以在没有对象存在的情形下通过类名来调用这一成员函数3 需要确保上述成员函数在对象已经存在的情形下不再创建新对象增加一个本类指针的static数据成员作为条件变量。如果是多线程还是可能创建多个实例需要进行Lock操作(如Boost库支持此操作)。#include using namespace std;class Singleton{public: static Singleton *GetInstance() // 静态成员函数构造一个实例 {// Lock(); // 多线程时(Boost库支持Lock操作) if (m_Instance NULL) { m_Instance new Singleton(); // ① }// UnLock();// static Singleton m_Instance; // ② 多线程时 return m_Instance;// return const_cast (m_Instance); // ③ 常量对象只有一次创建的机会 } static void DestoryInstance() { if (m_Instance ! NULL ) { delete m_Instance; m_Instance NULL ; } } // This is just a operation example int GetTest() { return m_Test; }private: Singleton(){ m_Test 10; } // 构造函数私有 Singleton::Singleton(const Singleton) {} // 拷贝构造函数私有 Singleton Singleton::operator(const Singleton) {} // 赋值运算符私有 static Singleton* m_Instance; // 静态数据成员用于判断是否存在类实例 int m_Test; // used for test};Singleton *Singleton ::m_Instance NULL;int main(int argc , char *argv []){ Singleton *singletonObj Singleton ::GetInstance(); coutGetTest()一般的编程观念是new操作需要和delete操作进行匹配上述的实现中添加了一个DestoryInstance的static函数这也是最简单最普通的处理方法了但是很多时候很容易忘记调用DestoryInstance函数就像你忘记了调用delete操作一样。由于怕忘记delete操作所以就有了智能指针那么在单例模型中没有“智能单例”怎么办在实际项目中特别是客户端开发其实是不在乎这个实例的销毁的。因为全局就这么一个变量全局都要用它的生命周期伴随着软件的生命周期软件结束了它也就自然而然的结束了因为一个程序关闭之后它会释放它占用的内存资源的所以也就没有所谓的内存泄漏了。但是有以下情况是必须需要进行实例销毁的如果类中有一些文件锁、文件句柄、数据库连接等这些随着程序的关闭而不会立即关闭的资源必须要在程序关闭前进行手动释放。定义一个供单例类使用的内部GC类用来释放资源。由于程序在结束的时候系统会自动析构所有的全局变量实际上系统也会析构所有类的静态成员变量就像这些静态变量是全局变量一样。我们知道静态变量和全局变量在内存中都是存储在静态存储区的所以在析构时是同等对待的。#include using namespace std;class Singleton{public: static Singleton *GetInstance() { return m_Instance; } int GetTest() { return m_Test; }private: Singleton(){ m_Test 10; } static Singleton *m_Instance; int m_Test; class GC { public : ~GC() { // We can destory all the resouce here, eg:db connector, file handle and so on if (m_Instance ! NULL ) { cout Here is the test GetTest()ref:https://www.cnblogs.com/ring1992/p/9592817.html-End-
http://www.yutouwan.com/news/392260/

相关文章:

  • 设计师工作室网站动易网站安装子目录中
  • 广东建设工程执业资格注册中心网站房产网站建设接单
  • 遵义酷虎网站开发自己做店招的网站
  • 给别人云做网站赚钱吗网站建设需要敲代码吗
  • js获取网站html本地邵阳网站建设
  • 网站源码调试顺德电子商务网站建设
  • 二手交易网站开发的河间市网站建设价格
  • 新浪微博 wordpress插件seo排名优化软件免费
  • 福州做网站互联网公司php个人网站怎么做
  • 网址谁有给我一个找索引擎seo
  • 人才市场招聘网站网络规划设计师教程 pdf
  • 企业响应式网站建设com域名续费多少钱
  • 北京网站建设汉邦网站建设相关的比赛
  • 网站动画用什么做开网站的是啥公司
  • 网站制作流程一般制作流程?网络推广的渠道
  • 航达建设集团有限公司网站高端网站建设合同
  • 西安网站建设推广公司辽宁住房和建设厅网站首页
  • 好的企业网站建设上海网页制作设计
  • 做网站的云服务器选什么熟悉免费的网络营销方式
  • 做网站普洱机关门户网站建设要求
  • 做网站要注册公司吗喜欢做木工 网站
  • 住房城乡建设部网站合同示范网站建设证有
  • 高校网站建设运维体系问题简单动画制作
  • 电子商务网站建设的基本要求域名购买国外
  • 值得浏览的外国网站松滋网络推广
  • 教育网站建设网站公司网站建设素材
  • 装修设计网站排行榜前十名公司宣传片拍摄脚本
  • 宁波建网站哪家哪些企业需要网络推广
  • 在线视频网站 一级做爰片wordpress公司网站模板
  • 南宁庆云网站建设主页网址