C++中怎么使用工厂函数

技术C++中怎么使用工厂函数本篇内容介绍了“C++中怎么使用工厂函数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!如果在

本文介绍了“如何在C语言中使用工厂函数”的知识。很多人在实际案例的操作中会遇到这样的困难。接下来,让边肖带领大家学习如何应对这些情况!希望大家认真阅读,学点东西!

如果在构造过程中需要“虚拟行为”,使用工厂函数Reason(原因)如果基类对象的状态必须依赖于对象的派生部分,我们需要使用虚拟函数(或等效函数),以便在没有完美构造的对象被错误使用时,最小化时间窗口。

注(注)工厂的返回类型通常应该返回unique _ ptr默认情况下;如果某些用法需要共享,调用者可以将unique_ptr移动到shared_ptr。但是,如果工厂的作者知道返回对象的所有用途都是共享的,他也可以返回shared_ptr,这样make_shared就可以在函数体中使用,节省一次内存分配。

例子,不好的(反面例子)B类{

公众号:

b(){ 0

/* .*/

f();//BAD: C.82:不要在构造函数和析构函数中调用虚函数

/* .*/

}

虚空f()=0;

};B类示例(

受保护:

类令牌{ };

公众号:

显式B(令牌){ /*.*/} //创建一个初始化不完善的对象

虚空f()=0;

模板类T

静态shared_ptrT create() //创建共享对象的接口

{

auto p=make _ sharedT(type name t : token { });

p-post _ initialize();

返回p;

}

受保护:

virtual void post_initialize() //构造后立即调用

{ /* .*/f();/* .*/} //GOOD:虚拟派单安全

};

D类:公共B { //某些派生类

受保护:

类令牌{ };

公众号:

显式D(令牌): B { B:Token { } }

void f()覆盖{ /*.*/};

受保护:

模板类T

friend shared _ ptrT b :3360 create();

};

shared _ ptrD p=d :3360 created();//创建D objectmake_shared调用的构造函数必须是公共的。通过要求一个受保护的令牌,构造函数不能被公开调用,这样我们就可以避免不完全构造对象的流出。由于提供了工厂方法create(),因此可以方便地实现构建过程(在自由存储上)。

注(注)

传统的工厂方法在自由存储上分配对象内存,而不是在堆栈或封闭对象中。

这里介绍一下“如何在C语言中使用工厂函数”的内容。感谢您的阅读。如果你想了解更多的行业,可以关注网站。边肖将为您输出更多高质量的实用文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/124822.html

(0)

相关推荐

  • mysql是不是关系型数据库系统

    技术mysql是不是关系型数据库系统本篇内容介绍了“mysql是不是关系型数据库系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够

    攻略 2021年12月2日
  • wcf 技术(wcf性能测试)

    技术WCF性能举例分析这篇文章主要介绍“WCF性能举例分析”,在日常操作中,相信很多人在WCF性能举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”WCF性能举例分析”的疑惑有所帮助!

    攻略 2021年12月14日
  • 精益求精是什么意思,精益求精精益求精的精是什么意思

    技术精益求精是什么意思,精益求精精益求精的精是什么意思一、意思是:(学术、技术、作品、产品等)好了还求更好精益求精是什么意思。二、引证:毛泽东《纪念白求恩》:白求恩同志是个医生,他以医疗为职业,对技术~;在整个八路军医务

    生活 2021年10月21日
  • 田鸡的做法,水煮田鸡的正宗做法王刚

    技术田鸡的做法,水煮田鸡的正宗做法王刚1田鸡买的时候让杀好,砍成块,头跟爪子不要,清洗干净,用醋田鸡的做法、生抽、料酒、姜丝、蒜头腌制一会
    2
    花菜撕成小朵,仔细清洗沥干备用(也可以换成白菜,豆芽,黄瓜,木耳)
    3
    花椒

    生活 2021年10月28日
  • 香港多IP服务器、香港站群服务器为什么有利于SEO

    技术香港多IP服务器、香港站群服务器为什么有利于SEO网站所有者花费大量时间和金钱在搜索引擎的第一页上展示他们极具竞争力的网站。优化页面以使搜索引擎更容易阅读网站、制作SEO兼容的内容、从其他优质网站获取反向链接、发布促

    礼包 2021年11月1日
  • apache pulsar 管理界面(国内哪些公司在使用apachepulsar)

    技术Apache Pulsar的系统架构及设计理念是什么今天就跟大家聊聊有关Apache Pulsar的系统架构及设计理念是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可

    攻略 2021年12月15日