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

网站怎做百度代码统计室内设计效果图图片

网站怎做百度代码统计,室内设计效果图图片,个人网页设计文档说明模板,互联网运营管理#x1f30f;博客主页#xff1a; 主页 #x1f516;系列专栏#xff1a; C ❤️感谢大家点赞#x1f44d;收藏⭐评论✍️ #x1f60d;期待与大家一起进步#xff01; 文章目录 一、请设计一个类#xff0c;只能在堆上创建对象二、 请设计一个类#xff0c;只能… 博客主页 主页 系列专栏 C ❤️感谢大家点赞收藏⭐评论✍️ 期待与大家一起进步 文章目录 一、请设计一个类只能在堆上创建对象二、 请设计一个类只能在栈上创建对象三、 请设计一个类不能被继承1.方法一2.方法二 四、请设计一个类只能创建一个对象(单例模式)1.饿汉模式2.懒汉模式1.普通场景2.特殊场景1、中途需要显示释放2.程序结束时需要做一些特殊动作如持久化3.源码 一、请设计一个类只能在堆上创建对象 实现方式 将类的构造函数私有拷贝构造声明成私有。防止别人调用拷贝在栈上生成对象。提供一个静态的成员函数在该静态成员函数中完成堆对象的创建 class HeapOnly { public:static HeapOnly* CreateObj(){return new HeapOnly;} private:HeapOnly(){//...}HeapOnly(const HeapOnly hp) delete;HeapOnly operator(const HeapOnly hp) delete; };二、 请设计一个类只能在栈上创建对象 实现方法 1.同上将构造函数私有化然后设计静态方法创建对象返回即可 2.禁用堆上的创建方式newoperator new构造函数 3.operator new 是系统提供的全局函数new在底层调用operator new全局函数来申请空间 class StackOnly { public:static StackOnly CreateObj(){return StackOnly();}// 禁掉operator new可以把下面用new 调用拷贝构造申请对象给禁掉// StackOnly obj StackOnly::CreateObj();// StackOnly* ptr3 new StackOnly(obj);// newoperator new 构造//delete析构operator deletevoid* operator new(size_t size) delete;void operator delete(void* p) delete; private://构造函数私有化//拷贝构造函数不能私有化因为我们上面CreateObj()返回需要//用到拷贝构造函数StackOnly():_a(0){} private:int _a; };三、 请设计一个类不能被继承 1.方法一 // 构造函数私有化派生类中调不到基类的构造函数。则无法继承 class NonInherit { public:static NonInherit GetInstance(){return NonInherit();} private:NonInherit(){} };2.方法二 //final关键字final修饰类表示该类不能被继承。 class A final {// .... };四、请设计一个类只能创建一个对象(单例模式) 单例模式 一个类只能创建一个对象即单例模式该模式可以保证系统中该类只有一个实例并提供一个访问它的全局访问点该实例被所有程序模块共享。 比如在某个服务器程序中该服务器的配置信息存放在一个文件中这些配置数据由一个单例对象统一读取然后服务进程中的其他对象再通过这个单例对象获取这些配置信息这种方式简化了在复杂环境下的配置管理 1.饿汉模式 就是说不管你将来用不用程序启动时就创建一个唯一的实例对象。 class Singleton { public:// 2、提供获取单例对象的接口函数static Singleton GetInstance(){return _sinst;}private:// 1、构造函数私有//构造函数私有也不能调用new了Singleton(){// ...}// 3、防拷贝Singleton(const Singleton s) delete;Singleton operator(const Singleton s) delete;static Singleton _sinst;//虽然为静态类型但依然可以使用对应类里面的构造函数 }; Singleton Singleton::_sinst;// 在程序入口之前就完成单例对象的初始化饿汉模式:一开始(main函数之前)就创建单例对象 1、如果单例对象初始化内容很多影响启动速度 2、如果两个单例类互相有依赖关系。 假设有A B两个单例类要求A先创建B再创建B的初始化创建依赖A但在main的外面没办法确定哪个类先被创建可能会出现问题 2.懒汉模式 如果单例对象构造十分耗时或者占用很多资源比如加载插件啊 初始化网络连接啊读取文件啊等等而有可能该对象程序运行时不会用到那么也要在程序一开始就进行初始化就会导致程序启动时非常的缓慢。 所以这种情况使用懒汉模式延迟加载更好。 1.普通场景 class Singleton{public:// 2、提供获取单例对象的接口函数static Singleton GetInstance(){if (_psinst nullptr){// 第一次调用GetInstance的时候创建单例对象_psinst new Singleton;}return *_psinst;}private:// 1、构造函数私有Singleton(){// ...}~Singleton(){}// 3、防拷贝Singleton(const Singleton s) delete;Singleton operator(const Singleton s) delete;static Singleton* _psinst;};Singleton* Singleton::_psinst nullptr;2.特殊场景 1、中途需要显示释放 static void DelInstance(){if (_psinst){delete _psinst;_psinst nullptr;}//自己写一个静态的函数进行释放操作}2.程序结束时需要做一些特殊动作如持久化 方法 1.我们把要写入的数据过程放到析构函数中 2.我们可以像智能指针那样使用在类里面再定义一个类GC让GC的析构函数专门用来管理Singleton的析构函数然后创建GC的对象因为GC不是指针类型为普通类型程序结束的时候会自动调用其析构函数这样也就完成了Singleton的析构函数 class GC{public:~GC(){Singleton::DelInstance();}};~Singleton(){cout ~Singleton() endl;// map数据写到文件中FILE* fin fopen(map.txt, w);for (auto e : _dict){fputs(e.first.c_str(), fin);fputs(:, fin);fputs(e.second.c_str(), fin);fputs(\n, fin);}}3.源码 class Singleton{public:// 2、提供获取单例对象的接口函数static Singleton GetInstance(){if (_psinst nullptr){// 第一次调用GetInstance的时候创建单例对象_psinst new Singleton;}return *_psinst;}// 一般单例不用释放。// 特殊场景1、中途需要显示释放 2、程序结束时需要做一些特殊动作如持久化static void DelInstance(){if (_psinst){delete _psinst;_psinst nullptr;}}class GC{public:~GC(){Singleton::DelInstance();}};private:// 1、构造函数私有Singleton(){// ...}~Singleton(){cout ~Singleton() endl;// map数据写到文件中FILE* fin fopen(map.txt, w);for (auto e : _dict){fputs(e.first.c_str(), fin);fputs(:, fin);fputs(e.second.c_str(), fin);fputs(\n, fin);}}// 3、防拷贝Singleton(const Singleton s) delete;Singleton operator(const Singleton s) delete;mapstring, string _dict;// ...static Singleton* _psinst;static GC _gc;};Singleton* Singleton::_psinst nullptr;Singleton::GC Singleton::_gc;class A {public:A() {cout gouzao endl;}~A() {cout 析构函数 endl;}};
http://www.hkea.cn/news/14401947/

相关文章:

  • 做装修哪个网站推广好求个免费网站好人有好报
  • 手机版网站打开速度慢吉安信息网
  • 怎么做百度联盟网站网站分辨率做96是否会更好
  • 在国际网站上做贸易怎么发货西安赶集网官网
  • 在门户网站做推广wordpress 改ip
  • 满洲里网站制作免费网站下载大全
  • 瑞安市住房和城乡规划建设局网站网站开发毕设答辩
  • 如何免费建一个学校网站微网站建设步骤
  • 上海有名的做网站的公司有哪些wordpress去掉顶部工具栏
  • 网站制作添加视频网站模板asp
  • 狼们求个没封的免费网站网店美工培训
  • 小说网站分页关键字怎么做如何制作一个微信公众号
  • 专业零基础网站建设教学在哪里西安网站建设公司排
  • 手机网站建设图开源企业cms建站系统
  • 网站搭建环境wordpress 安卓主题下载
  • 建设网站需要分析什么海报模板素材网站
  • 海络网站烟台网站制作设计
  • 网站实现搜索功能三明市建设局网站
  • 数据库网站计算机网站建设好不好
  • 济南网站建设是什么意思wordpress 广告代码
  • ftp怎么做网站狼雨的网站
  • 网站升级改版wap手机网站 作用
  • 网页设计网站搭建网络运营商无服务怎么办
  • 示范校建设专题网站网站统计帮哪个好
  • 购物网站建设目标客户分析论文深圳市建设工程交易
  • 网站地图可以自己做么网站免费建站性盈盈影院
  • 博物馆建设网站的作用湛江seo
  • 廊坊网站建设 elu推广图片制作
  • 云主机怎么上传网站营销公司网络检索
  • 公司网站是怎么做的免费收录网提交