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

菏泽做网站公司公关公司经营范围

菏泽做网站公司,公关公司经营范围,做网站需要注册公司,网站系统平台的安全策略是什么前面我们介绍了单例模式的两种实现#xff1a;懒汉模式和饿汉模式#xff0c;今天我们以新的方式来实现可复用的单例模式。 奇异递归模板是指父类是个模板类#xff0c;模板类型是子类类型#xff0c;即父类通过模板参数可以知道子类的类型。 // brief: a singleton base…前面我们介绍了单例模式的两种实现懒汉模式和饿汉模式今天我们以新的方式来实现可复用的单例模式。 奇异递归模板是指父类是个模板类模板类型是子类类型即父类通过模板参数可以知道子类的类型。 // brief: a singleton base class offering an easy way to create singleton #include iostreamtemplatetypename T class Singleton{ public:static T Instance(){static T instance;return instance;}Singleton(const Singleton)delete;Singleton operator (const Singleton)delete;protected:Singleton() {std::coutconstructor called!std::endl;} }; /********************************************/ // Example: // 1.friend class declaration is requiered! // 2.constructor should be private class DerivedSingle : public SingletonDerivedSingle {// !!!! attention!!!// needs to be friend in order to// access the private constructor/destructorfriend class SingletonDerivedSingle;private:DerivedSingle() default; };int main(int argc, char* argv[]){DerivedSingle instance1 DerivedSingle::Instance();DerivedSingle instance2 DerivedSingle::Instance();return 0; }该模式的思想是通过模板类的静态成员变量来确保一个类只有一个实例并且可以通过静态函数来获取该实例。在这种模式下我们将 Singleton 类作为基类派生出一个具体的单例类例如 MySingleton并让 MySingleton 类继承自 SingletonMySingleton。 这个单例模式有非常多的实现细节需要注意足以考察你的C功底。 首先Singleton的构造是protected的因为Singleton本身只是个帮助类并没有单独实例化的需要但是子类需要实例化所以需要protected子类才可以访问。 在 Singleton 类中我们定义了一个 Instance() 静态函数返回一个类型为 T 的对象。在 Instance() 函数中我们定义了一个静态局部变量 instance用于存储 T 类型的唯一实例。由于静态局部变量的生命周期与程序的运行周期相同因此 nstance 只会在程序第一次调用 Instance() 函数时被创建并在程序结束时被销毁。通过返回 instance 的引用我们可以保证每次调用 Instance() 函数时都返回同一个实例。 此外我们在 Singleton 类删除拷贝构造和赋值运算符的语句以确保单例对象不能被复制或赋值并且能够正确释放资源。 在这里基类的析构函数可以不需要 virtual 因为子类在应用中只会用 Derived 类型保证了析构时和构造时的类型一致 在 MySingleton 类中我们只需要简单地继承自 SingletonMySingleton并在构造函数中添加一些特定的逻辑即可。由于 MySingleton 类已经继承自 SingletonMySingleton因此可以通过调用 SingletonMySingleton::Instance() 函数来获取唯一的 MySingleton 实例。 这种使用 CRTP 实现的单例模式具有以下优点 代码简洁只需要定义一个基类和若干个派生类即可无需编写大量重复的单例模式代码。线程安全由于静态局部变量的创建是线程安全的因此该模式天然支持多线程环境下的单例实现。性能高效由于只需要在程序第一次调用 Instance() 函数时创建实例因此该模式对性能的影响较小 这里也有几个特殊的限制 首先子类还必须将构造私有化其次由于子类构造私有化但父类需要创建子类实例因此需要将父类声明为子类的友元类。
http://www.zqtcl.cn/news/326129/

相关文章:

  • 钓鱼网站营销型网站建设实战
  • 可以下载电影的网站怎么做做网站公司西安
  • 自己做签名网站网店美工培训教程
  • 宁波产品网站设计模板php 网站 教程
  • 制作一个网站的费用是多少免费网站空间怎么
  • 如何建立自己的微网站网站建设教程怎么建
  • seo网站项目讲解沈阳网红
  • 苏州大型网站建设公司网站外链优化
  • 阿里云购买域名后怎么建网站沂南网站设计
  • 网站建设基础考试php网站开发入门
  • 广州五屏网站建设seo诊断报告示例
  • 周浦高端网站建设公司信阳做网站的公司
  • 博客网站怎么建设湛江新闻头条最新消息
  • 外贸网站建设 评价有没有教做网站实例视频
  • 县 住房和城乡建设局网站wordpress接入支付宝
  • 网站建设初期推广方式天津网站建设案例
  • 销项税和进项导入是在国税网站做吗凡科网站模块
  • 苏州建网站皆去苏州聚尚网络常州企业建站系统
  • 网站建设明细wordpress 主题稳定
  • 网站设计论文前言怎么写肇庆网站开发哪家专业
  • 商城建站系统松江新城做网站公司
  • 长沙招聘做搜狗pc网站优化排
  • 辽宁智能建站系统价格金融做市场广告挂哪些网站
  • 做外贸的有哪些网站互动平台游戏
  • 网站设计最好的公司idc网站模板源码下载
  • 网站建设历史视频制作软件有哪些
  • 加盟网站制作定制桥的设计网站建设
  • 深圳做宣传网站的公司开发电商网站多少钱
  • 自适应网站建设公司什么是网站死链
  • 自己给网站做支付接口wordpress elementor