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

网站建设论文ppt蚌埠做网站有哪些公司

网站建设论文ppt,蚌埠做网站有哪些公司,黑龙江 网站开发,ppt模板免费下载 素材红色主题只能在堆上创建对象的类 如果你想要确保对象只能在堆上创建#xff0c;可以通过将析构函数声明为私有#xff0c;并提供一个静态成员函数来创建对象。这样#xff0c;类的实例化只能通过调用静态成员函数来完成#xff0c;而无法直接在栈上创建对象。 以下是一个示例可以通过将析构函数声明为私有并提供一个静态成员函数来创建对象。这样类的实例化只能通过调用静态成员函数来完成而无法直接在栈上创建对象。 以下是一个示例 class HeapOnlyClass { private:HeapOnlyClass() {} // 私有的构造函数防止在栈上创建对象~HeapOnlyClass() {} // 私有的析构函数public:static HeapOnlyClass* createInstance() {return new HeapOnlyClass();} };int main() {// 无法在栈上创建对象// HeapOnlyClass obj;// 只能通过静态成员函数创建对象HeapOnlyClass* obj HeapOnlyClass::createInstance();// 使用对象...delete obj; // 释放堆上的对象return 0; }在上面的示例中HeapOnlyClass 类的构造函数和析构函数都被声明为私有。这意味着在类的外部无法直接创建对象或销毁对象。 通过提供一个静态成员函数 createInstance()我们可以在堆上创建对象。静态成员函数返回一个指向 HeapOnlyClass 对象的指针。在 main() 函数中我们使用 createInstance() 函数来创建对象并在使用完对象后通过 delete 关键字释放对象。 这样我们就可以确保对象只能在堆上创建而无法在栈上创建。 只能在栈上创建对象的类 如果你想要确保对象只能在栈上创建可以将类的构造函数声明为私有并提供一个静态成员函数来创建对象。这样类的实例化只能通过调用静态成员函数来完成而无法直接在堆上创建对象。 以下是一个示例 class StackOnlyClass { private:StackOnlyClass() {} // 私有的构造函数防止在堆上创建对象public:static StackOnlyClass createInstance() {return StackOnlyClass();} };int main() {// 无法在堆上创建对象// StackOnlyClass* obj new StackOnlyClass();// 只能通过静态成员函数创建对象StackOnlyClass obj StackOnlyClass::createInstance();// 使用对象...return 0; }在上面的示例中StackOnlyClass 类的构造函数被声明为私有。这意味着在类的外部无法直接创建对象。 通过提供一个静态成员函数 createInstance()我们可以在栈上创建对象。静态成员函数返回一个 StackOnlyClass 对象。在 main() 函数中我们使用 createInstance() 函数来创建对象并在使用完对象后对象会自动被销毁。 这样我们就可以确保对象只能在栈上创建而无法在堆上创建。 单例模式一个类之只能创建一个对象 单例模式可以通过懒汉模式和饿汉模式来实现。下面我将为你解释这两种方式的实现。 懒汉模式 懒汉模式是指在需要获取实例时才会创建对象。实现懒汉模式的关键是延迟实例化即在第一次调用获取实例的方法时才创建对象。 class LazySingleton { private:static LazySingleton* instance;LazySingleton() {} // 私有构造函数public:static LazySingleton* getInstance() {if (instance nullptr) {instance new LazySingleton();}return instance;} };LazySingleton* LazySingleton::instance nullptr;在上面的示例中LazySingleton 类的构造函数被声明为私有无法直接实例化对象。通过静态成员变量 instance 来保存类的唯一实例并在 getInstance() 方法中进行延迟实例化。如果 instance 为 nullptr则创建一个新的 LazySingleton 对象。如果 instance 不为 nullptr则直接返回现有的实例。 饿汉模式 饿汉模式是指在类加载时就创建对象无需延迟实例化。实现饿汉模式的关键是在类定义中直接创建对象并提供一个静态方法来获取这个实例。 class EagerSingleton { private:static EagerSingleton* instance;EagerSingleton() {} // 私有构造函数public:static EagerSingleton* getInstance() {return instance;} };EagerSingleton* EagerSingleton::instance new EagerSingleton();在上面的示例中EagerSingleton 类的构造函数被声明为私有无法直接实例化对象。通过静态成员变量 instance 在类定义中直接创建 EagerSingleton 对象。在 getInstance() 方法中直接返回这个已经创建好的实例。 懒汉模式和饿汉模式都可以实现单例模式但它们的区别在于实例化的时机。懒汉模式在第一次调用获取实例的方法时才创建对象而饿汉模式在类加载时就创建对象。 懒汉模式和饿汉模式各有优点和缺点下面我将为你详细解释。 懒汉模式的优点 延迟实例化懒汉模式在需要获取实例时才会创建对象可以避免不必要的资源消耗。如果实例化对象的过程比较耗时懒汉模式可以提高性能。线程安全加锁在多线程环境下懒汉模式可以通过加锁来保证只有一个线程能够创建实例。这样可以避免多个线程同时创建多个实例的问题。 懒汉模式的缺点 线程安全加锁虽然懒汉模式可以通过加锁来保证线程安全但是加锁会引入额外的开销降低性能。可能存在资源竞争在多线程环境下如果有多个线程同时判断实例为空然后同时创建实例就会导致资源竞争的问题。 饿汉模式的优点 简单直观饿汉模式在类加载时就创建了实例不需要进行延迟实例化的逻辑代码相对简单。线程安全在类加载时就创建了实例因此不会存在多个线程同时创建实例的问题。 饿汉模式的缺点 提前实例化饿汉模式在类加载时就创建了实例如果这个实例在后续的程序中没有被使用就会造成资源的浪费。无法处理异常在饿汉模式下如果在创建实例的过程中发生异常无法通过捕获异常来处理因为实例的创建是在类加载时进行的。 综上所述懒汉模式适用于需要延迟实例化的场景可以避免不必要的资源消耗而饿汉模式适用于实例创建比较简单且在后续程序中会被使用的场景可以保证线程安全。
http://www.huolong8.cn/news/180155/

相关文章:

  • 微信分享网站显示图片百度推广优化师是什么
  • 泰州做房产的网站wordpress用的什么框架
  • 宁波有没有开发网站的公司站长忽略的几个观点
  • asp网站上传到服务器上之后一打开就是download免费查询企业联系方式
  • 团购网站前景档案信息网站建设工作经验
  • 北京视频网站建设网站语音转写怎么做
  • 微信网站建设报价开网店哪个电商平台好
  • 建立网站原理网站管理包括哪些内容
  • 长沙免费建站网络营销网站设计制作过程
  • 青岛工程造价信息网企业网站优化电话
  • 电商网站总体设计方案wordpress 文章作者
  • 模版用iis在自己家电脑上做网站二级网站建设基本情况
  • wordpress 导航网站软件系统开发阶段任务
  • 中国建设银行网站首页旧版小众电商平台有哪些
  • 雅安网站制作如何下载别人wordpress定制的主题
  • 嘉纪商正网站建设公司网站策划书的意义
  • 贵阳做网站软件发布网站制作
  • 做数学题好的网站程序员 修电脑 做网站
  • 婚纱手机网站怎样推广品牌
  • 正规的丹阳网站建设团队网站模板
  • 淮安网站制作设计网站建设 豫icp备
  • 网站策划书哪个容易做应用软件开发需要学什么
  • 域名的种类及查询网站普陀集团网站建设
  • 昭通市网站建设泾县网站seo优化排名
  • 免费网站建设排行昆明网络科技公司有哪些
  • 买空间域名做网站凯里网站开发gzklyy
  • 深圳网络营销培训seo推广教学
  • 广西玉林网站建设正规公司深圳市网站哪家做的好
  • 小程序开发公司排行榜六安做网站seo
  • 建设网站备案不通过怎么办重庆有哪些做网站 小程序的