C++之构造函数初始化列表
文章目录构造函数的初始化列表需要显式初始化列表的场景初始化顺序构造函数的初始化列表构造函数对数据成员进行初始化还可以通过成员初始化列表的方式完成。语法格式构造函数名(参数表):成员1(初始值参数),成员2(初始值参数){}实例#includeiostreamusingnamespacestd;classStudent{private:string m_name;intm_age;intm_no;public:Student(conststringname,intage,intno):m_name(name),m_age(age),m_no(no){coutStudent constructorendl;}voidsetName(conststringname){m_namename;}voidsetAge(intage){if(age0)cout无效年龄endl;elsem_ageage;}voidsetNo(intno){m_nono;}voidsleep(inthour){cout我睡了hour小时endl;}voideat(conststringfood){cout我正在吃foodendl;}voidlearn(conststringcourse){cout我正在学习courseendl;}voidwho(){cout我叫: m_name 我今年m_ageendl;}};intmain(void){Students1(张飞,21,10003);s1.who();s1.eat(烧烤);Students2(刘备,28,10000);s2.who();s2.learn(C);return0;}需要显式初始化列表的场景一般而言使用初始化列表和在构造函数体对成员变量进行赋初值两者区别不大可以任选一种但是下面几种场景必须要使用初始化列表:如果有类类型的成员变量(成员子对象)而该类又没有无参构造函数则必须要通过初始化列表显式指明其初始化方式“const”修饰的成员变量(常成员变量)必须要在初始化列表中初始化“引用型”成员变量必须要在初始化列表中初始化#includeiostreamusingnamespacestd;classA{private:intm_data;public:A(intdata){coutA(int)endl;m_datadata;}};classB{private:A m_a;public:B(void):m_a(123){coutB(void)endl;}};intmain(void){B b;//一定会去构造成员对象m_a , 未指定如何构造系统去调用m_a的无参构造函数return0;}#includeiostreamusingnamespacestd;intnum12;classA{public:intm_r;constintm_c;/* * error A(void){ m_r num; m_c 100; } */A(void):m_r(num),m_c(100){}};intmain(void){A a;couta.m_r a.m_cendl;return0;}初始化顺序类中成员变量按声明顺序依次被初始化而与初始化表中的顺序无关#includeiostreamusingnamespacestd;classA{public:A(inta){coutA constuctorendl;}};classB{public:B(intb){coutB constuctorendl;}};classC{private:A m_a;B m_b;public:C(inta,intb):m_b(b),m_a(a){}};intmain(void){Cc(1,2);return0;}

相关新闻

Keil环境下Cortex-M工程结构全面讲解

Keil环境下Cortex-M工程结构全面讲解

Keil环境下Cortex-M工程结构:一场软硬件契约的精密编排 你有没有遇到过这样的情况? 代码逻辑完全正确, main() 里加了LED闪烁,烧录后却一片死寂; FreeRTOS任务创建成功,但 vTaskStartScheduler() 一执…

2026/7/4 9:37:39 阅读更多 →
星图AI平台实战:PETRV2-BEV模型训练与可视化监控

星图AI平台实战:PETRV2-BEV模型训练与可视化监控

星图AI平台实战:PETRV2-BEV模型训练与可视化监控 1. 开篇直击:为什么这次训练不折腾? 你是不是也经历过—— 花三天配环境,结果卡在CUDA版本不兼容; 下载数据集到一半断连,重来五次还没解压完&#xff1b…

2026/5/17 2:51:38 阅读更多 →
ollydbg下载及安装手把手教程:适合初学者的流程

ollydbg下载及安装手把手教程:适合初学者的流程

OllyDbg部署实战:一个逆向新手真正能跑起来的调试环境 你刚下载完 OllyDbg,双击 ollydbg.exe ,弹窗提示“Cannot open process”; 你照着某篇教程把插件扔进 Plugins 文件夹,重启后插件管理器却显示“0 plugins …

2026/5/17 2:51:37 阅读更多 →

最新新闻

基于CNN的中药识别系统开发与Flask部署实践

基于CNN的中药识别系统开发与Flask部署实践

1. 项目概述与核心思路 中药识别一直是传统医学数字化进程中的重要课题。作为一名长期从事计算机视觉应用的开发者,我发现将深度学习技术应用于中药识别领域具有广阔前景。本项目通过构建一个基于卷积神经网络(CNN)的中药识别系统,实现了从数据准备到模型…

2026/7/4 10:19:48 阅读更多 →
Python+OpenCV实现实时口罩检测系统开发指南

Python+OpenCV实现实时口罩检测系统开发指南

1. 项目概述 这个口罩识别系统是我去年疫情期间开发的一个实用工具,主要用来实时检测摄像头画面中的人员是否佩戴口罩。系统采用Python作为开发语言,结合OpenCV进行图像处理和模型推理,使用PyQt构建用户界面。整套方案在普通办公电脑上能达到…

2026/7/4 10:19:48 阅读更多 →
ICM-42688-P与STM32F417ZG在运动控制与振动监测中的应用

ICM-42688-P与STM32F417ZG在运动控制与振动监测中的应用

1. ICM-42688-P与STM32F417ZG的黄金组合解析 在工业自动化和机器人控制领域,传感器与处理器的协同工作能力直接决定了系统性能上限。ICM-42688-P作为TDK InvenSense推出的6轴MEMS运动跟踪传感器,与STMicroelectronics的STM32F417ZG微控制器形成的技术组合…

2026/7/4 10:17:48 阅读更多 →
Appium与Open-AutoGLM深度对比:AI如何重塑移动端自动化测试

Appium与Open-AutoGLM深度对比:AI如何重塑移动端自动化测试

1. 项目概述:当传统自动化框架遇上AI新范式 最近在搞移动端自动化测试和流程自动化,发现圈子里的讨论风向变了。以前大家一提到手机自动化,张口闭口就是Appium、Selenium,现在越来越多人在聊Open-AutoGLM、Agent这些新词。作为一个…

2026/7/4 10:17:48 阅读更多 →
Startup AI自动化落地实战:客服、库存与决策的闭环打法

Startup AI自动化落地实战:客服、库存与决策的闭环打法

1. 项目概述:当AI自动化真正落地到 startup 的日常毛细血管里 我带过三支不同阶段的创业团队,从十几人的 SaaS 工具公司,到二十人出头的跨境 DTC 品牌,再到刚完成种子轮的工业 IoT 解决方案团队。过去三年里,我亲手拆过…

2026/7/4 10:13:45 阅读更多 →
ID3到XGBoost:决策树模型演进的工程实战路径

ID3到XGBoost:决策树模型演进的工程实战路径

1. 这不是“树”的科普,而是决策模型演进的实战路线图 你打开任何一本机器学习入门书,十有八九会在第三章遇到“决策树”——画着几根分叉的流程图,讲着信息增益、基尼不纯度这些词,然后戛然而止。但真实项目里,没人只…

2026/7/4 10:13:45 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻