C++基类构造器的自动调用

C++基类构造器的自动调用

虽然基类的构造器和解构器不会被派生类继承,但它们会被派生类的构造器和解构器自动调用,今天我们用代码实证一下。

验证代码

源代码,仔细看注释内容:
D:\YcjWork\CppTour>vim c2004.cpp

#include <iostream>using namespace std;
/*** 基类不同构造器的调用
*/
class Mother{
public:Mother(){cout << "Mother: no param" << endl;}Mother(int a){cout << "Mother: int param" << endl;}~Mother(){cout << "Deconstruction Mother" << "\n\n";}
};
class Daughter: public Mother{
public:Daughter(int a){ //派生类构造器调用基类的默认构造器Mother()cout << "Daughter: int param" << "\n\n";}~Daughter(){cout << "Deconstruction Daughter" << "\n";}
};
class Son: public Mother{
public:Son(int a): Mother(a){ //派生类构造器调用基类的指定构造器Mother(int a)cout << "Son: int param" << "\n\n";}~Son(){cout << "Deconstruction Son" << "\n";}
};int main(){{Daughter mary(5);}{Son jack(6);}return 0;
}

编译运行

构造器的调用顺序:
先构造基类,再构造派生类

解构器的调用顺序:
先派生类解构,再基类解构

D:\YcjWork\CppTour>gpp c2004D:\YcjWork\CppTour>g++ c2004.cpp -o c2004.exeD:\YcjWork\CppTour>c2004
Mother: no param
Daughter: int paramDeconstruction Daughter
Deconstruction MotherMother: int param
Son: int paramDeconstruction Son
Deconstruction MotherD:\YcjWork\CppTour>

运行截屏
C++基类构造器的自动调用

(全文完)

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

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

相关文章

《RabbitMQ篇》基本概念介绍

MQ功能 解耦 MQ允许不同系统或组件之间松散耦合。发送者和接收者不需要直接连接&#xff0c;从而提高了系统的灵活性和可维护性。异步处理 使用MQ可以实现异步消息传递&#xff0c;发送者可以将消息放入队列后立即返回&#xff0c;不必等待接收者处理。这提高了系统的响应速度…

RabbitMQ入门3—virtual host参数详解

在 RabbitMQ 中&#xff0c;创建 Virtual Host 时会涉及到一些参数配置&#xff0c;比如 tags 和 Default Queue Type。下面是对这两个参数的详细解释&#xff1a; 1. Tags Tags 是 Virtual Host 的标记&#xff0c;用来为 Virtual Host 添加元数据&#xff0c;帮助你管理和组…

牛客周赛 Round 62(期望、DFS、主席树、DP、逆推DP)

文章目录 牛客周赛 Round 62&#xff08;期望、DFS、主席树、DP、逆推DP&#xff09;A. 小红的字符移动B. 小红的数轴移动C. 小红的圆移动D. 小红的树上移动 (期望、DFS)E. F. 小红的中位数查询&#xff08;主席树&#xff09;G. 小红的数轴移动&#xff08;二&#xff09;&…

Windows下Jenkins控制台中文乱码

问题描述 问题情况如下图&#xff1a; 环境信息 Windows 11 家庭中文版java 21.0.4 2024-07-16 LTSJenkins 2.452.3 解决方法 增加系统JAVA_TOOL_OPTIONS&#xff0c;并设置值为-Dfile.encodingGBK。 打开设置方法&#xff1a;桌面上右键点击“此电脑”图标&#xff0c;选…

mysql设置表的某一个字段每天定时清零

推荐学习文档 golang应用级os框架&#xff0c;欢迎stargolang应用级os框架使用案例&#xff0c;欢迎star案例&#xff1a;基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识&#xff0c;这里有免费的golang学习笔…

算法笔记(十三)——BFS 解决最短路问题

文章目录 迷宫中离入口最近的出口最小基因变化单词接龙为高尔夫比赛砍树 BFS 解决最短路问题 BFS(广度优先搜索) 是解决最短路径问题的一种常见算法。在这种情况下&#xff0c;我们通常使用BFS来查找从一个起始点到目标点的最短路径。 迷宫中离入口最近的出口 题目&#xff1a;…

Android SystemUI组件(11)SystemUIVisibility解读

该系列文章总纲链接&#xff1a;专题分纲目录 Android SystemUI组件 本章关键点总结 & 说明&#xff1a; 说明&#xff1a;本章节持续迭代之前章节思维导图&#xff0c;主要关注左侧最上方SystemUiVisibility解读部分即可。 本章节主要讲解SystemUiVisibility的概念及其相…

数据库(MySQL):使用命令从零开始在Navicat创建一个数据库及其数据表(一).创建基础表

一. 使用工具和命令 1.1 使用的工具 Navicat Premium 17 &#xff1a;“Navicat”是一套可创建多个连接的数据库管理工具。 MySQL版本8.0.39 。 1.2 使用的命令 Navicat中使用的命令 命令命令解释SHOW DATABASES&#xff1b;展示所有的数据库CREATE DATABASE 数据库名称; 创…

thinkphp 学习记录

1、PHP配置 &#xff08;点开链接后&#xff0c;往下拉&#xff0c;找到PHP8.2.2版本&#xff0c;下载的是ZIP格式&#xff0c;解压即用&#xff09; PHP For Windows: Binaries and sources Releases &#xff08;这里是下载地址&#xff09; 我解压的地址是&#xff1a;D:\…

1、如何查看电脑已经连接上的wifi的密码?

在电脑桌面右下角的如下位置&#xff1a;双击打开查看当前连接上的wifi的名字&#xff1a;ZTE-kfdGYX-5G 按一下键盘上的win R 键, 输入【cmd】 然后&#xff0c;按一下【回车】。 输入netsh wlan show profile ”wifi名称” keyclear : 输入完成后&#xff0c;按一下回车&…

Codeforces Round 316 (Div. 2) D题 Tree Requests(二分,dfs,在线,前缀异或)

题目链接 Codeforces Round 316 (Div. 2) D题 Tree Requests 思路 将 26 26 26个字母全部当作一个二进制数。 将每个深度的结点按照dfs序放到一个vector里&#xff0c;同时记录每个vector对应的前缀异或。 对于每一个询问x&#xff0c;只需在给定深度里找到 ≥ \ge ≥L[x]…

中断系统的原理

一、介绍 中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的。中断是指‌CPU在正常运行程序时&#xff0c;由于内部或外部事件的发生&#xff0c;导致CPU中断当前运行的程序&#xff0c;转而去执行其他程序的过程。‌ 中断可以是硬件产生的&#xff0c;也可以是…

安全运营中心 (SOC) 团队对其安全工具感到失望

Vectra AI 表示&#xff0c;安全运营中心 (SOC) 从业人员认为&#xff0c;由于太多孤立的工具和缺乏准确的攻击信号&#xff0c;他们在检测和确定真实威胁的优先级方面正在失败。 人们对供应商的不信任感日益加深&#xff0c;认为供应商的工具在发现真正的攻击方面起的阻碍作用…

OpenCV视频I/O(16)视频写入类VideoWriter之获取当前使用的视频编解码器后端的名称函数getBackendName()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 getBackendName() 是一个成员函数&#xff0c;用于获取当前使用的视频编解码器后端的名称。这个函数可以帮助开发者了解正在使用的编解码器是什么…

金纳米星“融入”水凝胶,原位生长的奥秘,应用前景的探索

大家好&#xff01;今天来了解一项在三维水凝胶表面生长金纳米星的研究——《Growing Gold Nanostars on 3D Hydrogel Surfaces》发表于《Chemistry of Materials》。水凝胶在生物医学等诸多领域有着重要应用&#xff0c;而金纳米星具有独特的光学性质。这项研究通过原位合成的…

【Linux】线程与线程安全知识总结

向外张望的人在做梦&#xff0c; 向内审视的人才是清醒的。 --- 荣格 --- 我最近复习了线程安全这部分知识&#xff0c;将不明白的问题总结出来&#xff0c;并通过AI进行问答帮助我进行学习巩固。本人能力有限 &#xff0c;可能有些内容不准确&#xff0c;望各位大佬海涵&am…

Leetcode 3312. Sorted GCD Pair Queries

Leetcode 3312. Sorted GCD Pair Queries 1. 解题思路2. 代码实现 题目链接&#xff1a;3312. Sorted GCD Pair Queries 1. 解题思路 这一题的话坦率来说没有搞定&#xff0c;后来是找的大佬的代码抄了一下…… 整体来说这道题思路上还是比较暴力的&#xff0c;还是一个二重…

【前端开发入门】css快速入门

目录 引言一、css盒模型1. 盒模型概念2. 盒模型案例 二、css编写1. html文件内部编写1.1 标签style属性编写1.2 css选择器关联1.2.1 id选择器1.2.2 class选择器1.2.3 标签选择器1.2.4 css选择器作用域1.2.5 其他选择器1.2.6 各css选择器优先级 2. 单独维护css文件2.1 创建css文…

伙伴算法的概念

伙伴算法 (Buddy System) 是一种内存分配算法&#xff0c;用于动态分配和释放内存块。它通过将内存空间划分成大小为 2 的幂次的块&#xff0c;并采用特殊的合并策略来提高内存利用率和减少内存碎片。 核心思想: 伙伴算法的核心思想是将内存划分为大小为 2 k 2^k 2k 字节的块…

macOS .bash_profile配置文件优化记录

文章目录 说明原文件内容优化思路优化操作测试验证1. 验证JAVA_HOME2. 验证MAVEN_HOME3. 验证MONGODB_HOME4. 验证CLASSPATH5. 验证PATH 说明 展示的代码中&#xff0c;关于具体的文件路径位置&#xff0c;请灵活修改为自己的真实文件目录&#xff01; 原文件内容 从macOS C…