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

国外酷网站国家企业信息公示系统官网官

国外酷网站,国家企业信息公示系统官网官,c网站开发源代码,网上购物app有哪些#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.w-s-a.com/news/896809/

相关文章:

  • 万网网站建设 优帮云怎样用记事本做网站
  • 注册域名后网站建设百度指数的功能
  • 怎么做伪静态网站山西网站建设设计
  • 做小型企业网站多少钱衡阳市建设局网站
  • 金华专业网站建设公司网站建设空间和服务器方式
  • 自己做的网站在浏览器上显示不安全吗wordpress revolution slider
  • 西安网站建设推广优化搜索引擎营销
  • 互联网站备案管理工作方案 工信部注册深圳公司需要什么条件
  • 网站网站服务器网站建设 物流
  • 国外开发网站手机网站建设制作
  • 怎么把自己做的网站传网上青岛工程建设监理公司网站
  • 网站301跳转效果商丘网站公司
  • 公司网站建设西安网站的架构与建设
  • 食品科技学校网站模板花溪村镇建设银行网站
  • 图片渐隐 网站头部flash地方志网站建设自查报告
  • 深圳做商城网站视觉品牌网站建设
  • 永康电子商务网站建设弹幕网站怎么做
  • 百川网站企业做网站要注意哪些
  • 球迷类的网站如何做网站建设需要哪些素材
  • 请问有重庆有做网站吗电子政务系统网站建设的基本过程
  • 建设银行管方网站官网最新版cmsv6
  • 网站开发工程师需要会写什么深圳网站(建设信科网络)
  • 台州网站搭建网站建设需求计划
  • 网站app免费下载软件大全大连百度推广哪家好
  • 网站建设的面试要求iis做的网站手机怎么访问
  • 定州市住房保障和城乡建设局网站上海网站建设排行
  • 网站发帖百度收录网站改版后不收录
  • 昆明建设局网站号码网站开发 浏览器兼容性
  • 湖北专业网站建设大全室内设计联盟app下载
  • 网站建设的意义和作用江苏城市建设档案馆网站