【专题总结】【一文解决】C++多继承下的构造函数执行顺序

news2024/12/25 14:39:19

多继承下的构造函数执行顺序
派生类构造函数执行顺序如下
①调用基类构造函数→调用顺序按它们被继承时【从左至右】被说明的次序
②调用子对象的构造函数→调用顺序按它们在【类中说明次序】
③调用派生类的构造函数
【典型题1】13浙工大卷二读程序4题
【分析】下面①classC:public A,public B时A左B右→故先调A构造再调B构造
②B b,A a是子对象(类中定义的对象),类中先说明b再说明a→故先调B构造再调A构造
③最后调派生类C构造
在这里插入图片描述
【题2】C++教辅p191例题
【注意】classC:public B,public A时B左A右→故先调B构造再调A构造 [本题没有子对象]
在这里插入图片描述
题1代码如下

#include "bits/stdc++.h" 
#include<iostream>
using namespace std;

class A{
	int a;
	public:
		A(){
			cout<<"调用A的构造"<<endl;
		}
}; 

class B{
	int b;
	public:
		B(){
			cout<<"调用B的构造"<<endl;
		} 
};

class C:public A,public B{ //从类A和B共有派生C【注意】A左B右,先调A构造调B构造 
						  //上面输出1"调用A构造",2"调用B构造" 
	B b; //子对象b.输出3调用B的构造 
	A a; //子对象a.输出4调用A的构造 
	int c;
	public:
		C(){ 
			cout<<"调用派生类C的构造"<<endl; //最后调用5派生类C构造 
		} 
};

int main(){ 
    C c; 
    
    return 0;
} 

题2代码如下

#include "bits/stdc++.h" 
#include<iostream>
using namespace std;

class A{ //基类A 
	int a;
	public:
		A(int i){
			a=i;
			cout<<"A构造"<<endl;
		}
		void disp(){
			cout<<"A的a="<<a<<endl;
		}
}; 

class B{ //基类B  
	int b;
	public:
		B(int j){
			b=j;
			cout<<"B构造"<<endl; 
		}
		void disp(){
			cout<<"B的b="<<b<<endl;
		}
};

class C:public B,public A{ //从类A和B共有派生C【注意】B在左A在右,先调B构造再调A构造    
	int c;
	public:
		C(int k):A(k-2),B(k+2){ //包含基类成员初始化参数列表  
			c=k;
			cout<<"C构造"<<endl;
		}
		void disp(){ //C的disp()  
			A::disp(); //4输出A的a=8 
			B::disp(); //5输出B的b=12 
			cout<<"C的c="<<c<<endl; //6输出C的c=10 
		}
};

int main(){ 
    C obj(10); //输出1B构造,2A构造,3C构造 
    obj.disp(); //执行C的disp() 
    
    return 0;
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2181436.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言指针详解与应用(不断更新)

指针简介 指针(Pointer)是C语言的一个重要知识点&#xff0c;其使用灵活、功能强大&#xff0c;是C语言的灵魂 指针与底层硬件联系紧密&#xff0c;使用指针可操作数据的地址&#xff0c;实现数据的间接访问 指针生活实例化 指针的本质是地址&#xff0c;在生活中比如你取快…

当年掏空身体的9款怀旧软件,满满回忆杀

有个网站掀起了一股怀旧软件的风潮&#xff0c;让人惊喜地发现&#xff0c;尽管许多软件已不再更新&#xff0c;但时至今日&#xff0c;部分软件依然能够正常运行。 想当年&#xff0c;电脑价格贵的很&#xff0c;一但有机会接触电脑&#xff0c;那就是全神贯注&#xff0c;以…

仕考网:国考省考考试内容区别

国考和省考备考内容有一定的相似之处&#xff0c;具体考哪些内容你了解多少?中仕为大家分享一下吧! 题量&#xff1a; ①国考&#xff1a;行测一般有130-135道题目; ②省考&#xff1a;题量大多在120道左右&#xff0c;胳臂省份不同; 常识判断&#xff1a; ①国考&#x…

latex打出邮箱图标和可点击的orcidID

如图所示&#xff1a; 邮箱的打法 \usepackage{bbding} \inst{(}\Envelope\inst{)}orcidID的打法 \newcommand{\myorcidID}[1]{\href{https://orcid.org/#1}{\includegraphics[width8pt]{res/orcid.png}}} \captionsetup[algorithm]{skip5pt} \definecolor{customblue}{RGB}{…

使用 Colly 在 Golang 中进行网页抓取的步骤

什么是 Colly&#xff1f; Go 是一种用途广泛的语言&#xff0c;它拥有可以完成几乎所有工作的包和框架。 今天&#xff0c;我们将使用一个名为 Colly 的框架&#xff0c;它是一个用 Go 语言编写的、高效且强大的网页抓取框架&#xff0c;用于从网络上抓取数据。它提供了一个…

IPD的定义和三大重组

目前&#xff0c;业界对IPD的一般理解是&#xff1a;IPD——Integrated Product Development&#xff08;集成产品开发&#xff09;是一套领先的、成熟的产品开发的管理思想、模式和方法。它是根据大量成功的产品开发管理实践总结出来的&#xff0c;并被大量实践证明的高效的研…

Oracle 配置恢复目录catalog

一.介绍 Oracle中使用RMAN备份的数据我们分为两类 RMAN知识库数据库的数据块 Oracle默认把 RMAN知识库 放在目标数据库的控制文件中&#xff0c;在以后进行恢复的时候 我们要先读知识库的信息然后才能恢复。 但这样就产生了一个问题&#xff0c;知识库放在了控制文件上&#xf…

Whisper的使用

whisper的下载路径&#xff1a;https://github.com/openai/whisper需要安装以下的包。要求python的版本在3.9以上&#xff1a;如果当前python环境在3.9以下&#xff0c;可以换whisper的版本。点一下 releases 按钮。可以下载其他版本。使用whisper的时候需要其他包的安装。记住…

TypeScript 算法手册 - 【冒泡排序】

文章目录 TypeScript 算法手册 - 冒泡排序1. 冒泡排序简介1.1 冒泡排序定义1.2 冒泡排序特点 2. 冒泡排序步骤过程拆解2.1 比较相邻元素2.2 交换元素2.3 重复过程 3. 冒泡排序的优化3.1 提前退出3.2 记录最后交换位置案例代码和动态图 4. 冒泡排序的优点5. 冒泡排序的缺点总结 …

UEFI EDK2框架学习(三)——protocol

一、Protocol协议 搜索支持特定Protocol的设备&#xff0c;获取其Handle gBS->LocateHandleBuffer 将内存中的Driver绑定到给定的ControllerHandle gBS->OpenProtocol 二、代码实现 Protocol.c #include <Uefi.h> #include <Library/UefiLib.h> #includ…

cmd发邮件:Windows命令行发送邮件的教程!

cmd发邮件怎么通过命令行实现&#xff1f;如何使用CMD发送邮件&#xff1f; 通过cmd发邮件&#xff0c;你可以在不打开任何邮件客户端的情况下&#xff0c;直接从命令行发送邮件。AokSend将详细介绍如何使用cmd发邮件功能&#xff0c;让你轻松掌握这一实用技能。 cmd发邮件&a…

信息收集---WAF指纹识别

1. 什么是waf web应用防火墙&#xff0c;一款集网站内容安全防护、网站资源安全防护及流量保护功能为一体的服务器工具。为用户提供实时网站安全防护&#xff0c;避免各类针对网站的攻击带来的危害。&#xff08;核心其实也是基于规则的防御&#xff09;| 任何工具&#xff08…

解决 Could not locate zlibwapi.dll. Please make sure it is in your library path

zlibwapi.dll文件是zlib库的Windows版本&#xff0c;很多Python上的库想要在Windows上执行都需要依赖这个文件。 可以通过本人上传的免费资源直接下载&#xff1a;zlibwapi 链接&#xff1a;https://pan.baidu.com/s/1u8osbt_IevO4GOkXthZ04A 提取码&#xff1a;c2mf zlibwa…

8 时间序列相关工具介绍

1 背景 发现最近做的任务都是有关于时间序列任务的&#xff0c;做的方法全部偏向于如何对数据进行清洗、提取周期特征然后构造相关特征&#xff0c;这些工作都是比较偏向于传统时间序列模型的方案。 现在深度学习这个火&#xff0c;比如循环神经网络分支&#xff1a;L…

Typora 下载安装

准备工作 下载 下载链接&#xff1a;https://www.123865.com/ps/EF7OTd-adAnH 演示环境 操作系统&#xff1a;windows10 产品&#xff1a;typora 版本&#xff1a; 1.9.5 注意&#xff1a;如果需要其他版本可自行下载。 安装步骤 1、解压。 2、双击 "typora-setup-x64.…

基于SpringBoot+Vue的社区智慧消防管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

前端工程规范-3:CSS规范(Stylelint)

样式规范工具&#xff08;StyleLint&#xff09; Stylelint 是一个灵活且强大的工具&#xff0c;适用于保持 CSS 代码的质量和一致性。结合其他工具&#xff08;如 Prettier 和 ESLint&#xff09;&#xff0c;可以更全面地保障前端代码的整洁性和可维护性。 目录 样式规范工具…

国庆出行新伴侣:骨传导耳机分享,开启安全无忧的音乐旅行

随着国庆长假的脚步渐近&#xff0c;许多朋友已经开始规划自己的出游行程。无论是短途旅行还是长途跋涉&#xff0c;一款合适的耳机无疑是旅途中的良伴&#xff0c;特别是在户外活动频繁的假期&#xff0c;骨传导耳机因其独特的优点而成为了众多旅行者的首选。骨传导技术通过振…

心理咨询行业为何要有自己的知识付费小程序平台 心理咨询小程序搭建 集师saas知识付费小程序平台搭建

在快节奏的现代生活中&#xff0c;心理健康问题日益凸显&#xff0c;心理咨询行业迎来了前所未有的发展机遇。然而&#xff0c;传统咨询模式受限于地域、时间等因素&#xff0c;难以满足日益增长的多元化需求。在此背景下&#xff0c;搭建自己的知识付费小程序&#xff0c;成为…

python UNIT 3 选择与循环(2)

目录 1。循环的优化 经典优化分析&#xff1a; 未优化的代码&#xff1a; 细节分析&#xff1a; 优化后的代码&#xff1a; 优化的细节&#xff1a; 性能对比 优化的关键在于&#xff1a; 经典习题讲解&#xff1a;(紫色的解析请重点关注一下) 1。例三 个人代码解析…