首页 > 其他分享 >北京 易控智驾

北京 易控智驾

时间:2023-12-08 21:56:02浏览次数:33  
标签:调用 函数 子类 北京 控智驾 纯虚 析构 构造函数

c++ 多态?

多态是c++三大特性之一,封装 继承 多态,简单来说就是同一个调用实现不同的操作。而虚函数是实现多态的机制,核心就是通过虚函数实现基类可以调用派生类的方法。一般情况下,一个函数的调用是在编译时静态确定的,而多态使得函数的调用可以在运行时动态确定。当使用类的指针调用成员函数时,普通函数由指针类型决定,而虚函数由指针指向的实际类型决定

子类不用必须重写虚函数,但是必须重写纯虚函数:

纯虚函数在基类中只有声明,没有实现。这是因为纯虚函数的目的是为了定义一个接口,规定了一种标准,要求继承这个类的子类必须实现这个函数。这样做的好处是可以确保所有的子类都会有这个函数的实现。如果子类没有重写基类的纯虚函数,那么这个子类仍然是一个抽象类,不能被实例化。只有当子类提供了纯虚函数的实现,这个子类才能被实例化,也就是说,它变成了一个具体的类。所以,子类必须重写纯虚函数,这是由纯虚函数的性质和目的决定的。 

class A声明了一个纯虚函数,class B:public A实现了纯虚函数,class C:public B之后还需要实现纯虚函数吗?

不需要。类B已经实现了类A的纯虚函数,所以类C作为类B的子类,不需要再次实现这个纯虚函数。当然,如果类C需要对这个函数进行不同的实现,它可以选择覆盖(override)这个函数。

 

构造函数可以是虚函数吗? 析构函数?

构造函数不可以是虚函数,析构函数可以是虚函数。

首先,我们已经知道虚函数的实现则是通过对象内存中的vptr来实现的。而构造函数是用来实例化一个对象的,通俗来讲就是为对象内存中的值做初始化操作。那么在构造函数完成之前,也即还没有进行初始化,此时vptr是没有值的,也就无法通过vptr找到作为构造函数和虚函数所在的代码区,所以构造函数只能以普通函数的形式存放在类所指定的代码区中。

而对于析构函数,当我们delete(a)的时候,如果析构函数不是虚函数,那么调用的将会是基类base的析构函数。而当继承的时候,通常派生类会在基类的基础上定义自己的成员,此时我们当然希望可以调用派生类的析构函数对新定义的成员也进行析构

unique_ptr shared_ptr

unique_ptr删除了拷贝构造函数和拷贝赋值函数

内存管理 栈 堆

 

emplace_back push_back

emplace_back 本质上就是T&& 右值引用 不创建临时对象 直接移动T的指针 效率肯定高于push_back

单例设计模式

详情见c++

inline

内联函数(声明和定义都要加inline)也是存放在代码区,内联函数在被调用时,编译器会用内联函数的代码替换掉函数,避免了函数跳转和保护现场的开销(实际上到底替不替换还要由编译器决定,即使声明为内联函数也有可能不替换,未声明成内联函数也有可能被编译器替换到调用位置,主要由编译器决定

排序算法 复杂度

详情见单独页面

标签:调用,函数,子类,北京,控智驾,纯虚,析构,构造函数
From: https://www.cnblogs.com/whcjob/p/17888340.html

相关文章

  • 互联网医院系统|北京互联网医院软件开发功能
    打造移动互联网医院,就是,通过移动互联网将医院与患者、医院内部(医生、护士、领导层)、医院与生态链上的各类组织机构连接起来。以患者为中心,优化医院业务流程,提升医疗服务质量与医院资源能效,让患者通过移动互联网随时随地的享受医院的服务,改善患者就医体验。下面小编就给大家分享下互......
  • 北京路抽化粪池如何正确清理?专业指南来了!
    清理化粪池是一项重要的卫生工作,正确的清理方法可以有效避免环境污染和传染病的传播。下面是一份专业指南,指导您如何正确清理北京路的化粪池。初审朱小姐:l882OOO2548,专家团队在线解答,一分钟内回复率高达90%!首先,准备工作非常重要。在开始清理之前,确保您已经穿戴好防护装备,包括......
  • 北京大学 | Video-LLaVA视觉语言大模型:统一输入,同时处理图片和视频数据
    前言 北京大学和其他机构的研究人员近期提出了一种名为Video-LLaVA的视觉语言大模型。该模型的创新之处在于能够同时处理图片和视频作为输入。在处理图片的任务中,该模型展现出了出色的性能,在多个评估榜单中名列前茅,尤其在视频方面取得了令人瞩目的成绩。这项研究的关键点在于关注......
  • 北京某集团财务公司引入一体化运维监控平台
    一、背景介绍  北京某集团财务有限公司是一家专注于为集团内企业提供金融服务的企业。随着公司业务的快速发展,其IT系统的规模和复杂性也在不断增加,涉及各类IT资源,包括服务器、网络设备、数据库、应用软件等。为了提高IT系统的可靠性和稳定性,减少故障率,降低运维成本,该公司决定引......
  • OpenHarmony Meetup北京站招募令
    OpenHarmony Meetup城市巡回北京站火热来袭!!日期:2023年11月25日14:00地点:中国科学院软件园区五号楼B402与OpenHarmony技术大咖近距离互动,分享技术见解,结交志同道合的朋友!活动主题聚焦OpenHarmony开源未来,诚邀您莅临,一起交流与探讨~亮点:1. 技术深讨论:深入探讨OpenHarmony开源前景,激......
  • OpenHarmony Meetup北京站招募令
    OpenHarmony Meetup城市巡回北京站火热来袭!!日期:2023年11月25日14:00地点:中国科学院软件园区五号楼B402与OpenHarmony技术大咖近距离互动,分享技术见解,结交志同道合的朋友!活动主题聚焦OpenHarmony开源未来,诚邀您莅临,一起交流与探讨~亮点:1. 技术深讨论:深入探讨OpenHarmony开源前景,......
  • 2023第四季北京/杭州/青岛/深圳DAMA-CDGA/CDGP认证备考
    DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业竞争能力。DAMA是数据管理方面的认证,帮助数据从业者提升......
  • 2023第四季北京/杭州/青岛/深圳CDGP认证报名到这儿
    DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业竞争能力。DAMA是数据管理方面的认证,帮助数据从业者提升......
  • 北京外国语大学YUM源配置,安装常用命令和docker-ce
    #配置centos7相关yum源sed-e's|^mirrorlist=|#mirrorlist=|g'\-e's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.bfsu.edu.cn/centos|g'\-i.bak\/etc/yum.repos.d/CentOS-*.repo#安装epelyuminstall......
  • 人工智能计算大会(AICC 2023)将于11月29日在北京举办
    生成式人工智能和大模型正加速世界向智能化时代迈进,并引发AI计算需求的爆发式增长。智算已经成为驱动智慧世界持续进化的核心引擎,带动生产力与创新力实现跃迁式变革。11月29日,人工智能计算大会(AICC2023)将在北京举办。本届大会以“智算力就是创新力”为主题,由北京市科学技术委员会......