发布时间:2026/8/6 7:04:52
小学生学C++编程语法知识(C++类初始化详解(二)) C类对象的创建过程从内存分配 → 成员初始化 → 构造函数 → 析构函数全过程目标理解“对象出生”的全过程理解构造函数为什么自动执行理解初始化列表为什么重要理解析构函数什么时候执行为后面学习继承、多态、虚函数打基础一、先问一个问题我们写Student s;到底发生了什么很多初学者认为“调用构造函数然后对象产生。”其实不完整。真正过程非常复杂Student s; ↓ 1. 给对象分配内存 ↓ 2. 初始化成员变量 ↓ 3. 执行构造函数 ↓ 4. 对象正式出生二、准备一个例子我们定义一个学生类#includeiostream using namespace std; class Student { public: string name; int age; Student() { cout构造函数执行endl; } ~Student() { cout析构函数执行endl; } };main:int main() { Student s; }运行输出构造函数执行 析构函数执行为什么我们一步一步分析。三、第一步给对象分配内存执行Student s;系统首先找到一块内存。例如栈空间 ---------------- | | | Student对象 | | | ----------------假设string name; int age;需要空间Student对象 ------------- | name | | age | -------------此时对象只是一个“空盒子”。注意这时候构造函数还没有执行四、第二步初始化成员变量接下来初始化name age对于string name;调用string默认构造函数产生name对于int age;如果没有初始化普通局部变量age 里面是随机值例如age32768所以此时Student对象 ------------- | name | | age? | -------------五、第三步执行构造函数现在进入Student() { cout构造函数执行; }输出构造函数执行如果里面写Student() { nameTom; age10; }那么执行nameTom age10最终Student ------------- | Tom | | 10 | -------------六、第四步对象出生完成此时对象才真正可以使用。例如couts.name;可以访问。所以完整流程Student s; ① 分配内存 ② 初始化成员 ③ 执行构造函数 ④ 对象创建完成七、为什么构造函数不是第一步很多孩子会问“为什么不先执行构造函数”原因构造函数也是一个函数。函数执行时需要对象已经存在。比如Student() { age10; }这里age必须已经有空间。否则你给谁赋值所以必须先有房子 ↓ 再装修房子八、成员初始化列表在哪里执行我们看class Student { string name; int age; public: Student() :name(Tom),age(10) { } };执行过程不是创建对象 ↓ 进入构造函数 ↓ 执行冒号错误真实分配内存 ↓ 初始化name (name直接变Tom) ↓ 初始化age (age直接变10) ↓ 进入构造函数{}也就是说初始化列表发生在构造函数函数体之前。九、构造函数里面有什么构造函数分两部分例如Student() :name(Tom),age(10) { couthello; }分为第一部分初始化列表:name(Tom),age(10)负责出生状态第二部分函数体{ }负责出生以后做事情类似孩子出生初始化姓名 年龄 性别构造函数哭 睁眼 吃奶十、对象什么时候死亡看int main() { Student s; }程序运行进入mainStudent出生执行构造函数然后main结束Student死亡执行析构函数输出构造函数执行 析构函数执行十一、析构函数是什么析构函数名字~类名()例如~Student() { }作用对象消失之前负责清理工作。比如对象里面申请了空间int *p; pnew int[100];对象死亡时需要delete []p;否则内存泄漏。十二、对象死亡顺序如果int main() { Student a; Student b; }出生a出生 ↓ b出生死亡反过来b死亡 ↓ a死亡口诀谁后出生谁先死亡。十三、多个成员对象的创建顺序看class Engine { public: Engine() { cout发动机endl; } }; class Car { Engine e; public: Car() { cout汽车endl; } };创建Car c;输出发动机 汽车为什么因为汽车里面有发动机。必须先制造发动机 ↓ 再制造汽车全过程Car对象分配空间 ↓ Engine成员初始化 ↓ Car构造函数十四、继承情况下更复杂例如class Animal { public: Animal() { cout动物endl; } }; class Dog:public Animal { public: Dog() { cout狗endl; } };创建Dog d;输出动物 狗为什么因为狗继承动物。出生必须先有父亲 ↓ 再有孩子十五、完整生命周期图一个对象的一生创建对象 ↓ 分配内存 ↓ 初始化成员 ↓ 执行构造函数 ↓ 对象工作 ↓ 离开作用域 ↓ 执行析构函数 ↓ 释放内存十六、C对象生命周期口诀同学们记出生先分配 再初始化 最后构造消亡先析构 再释放初始化列表先执行 函数体后执行十七、竞赛常考点总结知识点重要程度构造函数自动调用⭐⭐⭐⭐⭐析构函数自动调用⭐⭐⭐⭐成员初始化顺序⭐⭐⭐⭐⭐初始化列表执行时机⭐⭐⭐⭐⭐对象局部变量生命周期⭐⭐⭐⭐父类、成员、自己的构造顺序⭐⭐⭐⭐⭐十八、给同学们总结可以把对象想象成一个小机器人制造机器人 ↓ 安装零件 ↓ 开机初始化 ↓ 执行启动程序 ↓ 工作 ↓ 关机清理 ↓ 报废对应C分配内存 ↓ 成员初始化 ↓ 构造函数 ↓ 对象使用 ↓ 析构函数 ↓ 释放资源

相关新闻

2026/8/6 7:04:52

滑动中值滤波算法详解

1、什么是滑动中值滤波滑动中值滤波(Moving Median Filter),属于非线性滤波,非常适合去除信号里的脉冲噪声、尖峰毛刺、跳变干扰,广泛用于传感器数据、嵌入式 ADC 采样、图像去噪。核心思想:设置一个固定大…

2026/8/6 7:04:52

小学生学C++编程语法知识(C++类初始化详解(一))

C类初始化详解(一):很多同学第一次学习类(class)时,会觉得:“我创建一个对象,不就是给变量赋值吗?为什么还要学习构造函数、初始化列表?”其实,类…

2026/8/6 7:04:52

珍珠棉设备和普通发泡机的区别,关键在这里

为什么你的珍珠棉总是回弹性差、易碎裂? 你是不是也遇到过这种情况:采购的珍珠棉(EPE)片材看起来厚实,但一压就塌、回弹慢,甚至运输途中就碎成渣?很多厂家以为是原料问题,其实根源往…

2026/8/6 8:09:55

板材残余应力从哪来搞清楚来源才能对症校平

校平机矫不平板材,很多时候不是参数没调对,而是没搞清楚板材残余应力从哪来。不同来源的残余应力,分布规律不一样,校平策略也应该不一样。用同一套参数去矫不同应力来源的板材,效果自然参差不齐。今天就来讲讲板材残余…

2026/8/6 8:09:55

适合线下销售团队的智能工牌品牌有哪些?

企业为线下销售团队选智能工牌,容易把注意力集中在续航、重量、通信方式等硬件参数上,却忽略采集稳定性、AI分析深度、行业验证规模与持续交付服务。真正能改善销售管理的产品,应将客户沟通转化为可检索、可分析、可复盘的数据,让…

2026/8/6 8:09:55

部署Qwen2.5-VL-3B-Instruc视觉模型的教程

部署视觉模型的教程 1. 环境信息项目详情主机型号DPS-Z790-S-DDR4操作系统Ubuntu 22.04 LTS (Linux Desktop)GPUNVIDIA GeForce RTX 系列 (Z790 平台)CUDA12.6Python3.10模型Qwen2.5-VL-3B-Instruct推理框架vLLM 0.8.xAPI 端口8003部署日期2026-08-05 2. 基础环境安装 2.1 系统…

2026/8/6 8:09:55

零基础入门ESP32如何点亮LED灯

很多零基础的朋友拿到ESP32开发板,第一反应是兴奋,第二反应是茫然——这东西怎么上手?驱动怎么装?固件怎么烧?代码写在哪?怎么传到板子上? 传统的入门路径太长了:装驱动→烧固件→装…

2026/8/6 8:09:55

AI数字人唱歌视频生成:从Wav2Lip到游戏应用的技术解析

1. 先搞清楚这个玩法到底是什么,以及它为什么能火 如果你玩《逆水寒》手游,最近可能被一个玩法刷屏了:用自己游戏里精心捏出来的角色,生成一段唱歌视频。这听起来有点“黑科技”,但核心体验其实很直接——你上传一张游…

2026/8/6 8:04:55

PNP晶体管工作原理、关键参数与经典应用电路全解析

1. 项目概述:从“电流阀门”到无处不在的开关 在电子世界的底层,有一种元件,它不像CPU那样光芒万丈,也不像屏幕那样直观可见,但它却是构建现代数字与模拟电路的基石之一。它就是PNP型双极结型晶体管。很多人一听到“晶…

2026/8/5 3:13:11

如何用免费工具突破游戏窗口限制:SRWE完整使用指南

如何用免费工具突破游戏窗口限制:SRWE完整使用指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否遇到过这样的困扰?想为心爱的游戏截图,却发现游戏不支持自定义分辨率…

2026/8/6 0:04:22

电力系统调度中的源荷不确定性建模与优化实践

1. 电力系统调度中的源荷不确定性挑战现代电力系统正面临前所未有的复杂性,其中源荷不确定性(Source-Load Uncertainty)已成为调度决策中最棘手的难题之一。我在参与某省级电网调度系统升级时,曾遇到风电预测误差导致日内调度计划…

2026/8/6 0:04:22

VGG-T3技术解析:3D重建速度的革命性突破

1. 项目概述:VGG-T3如何重新定义3D重建速度在计算机视觉领域,3D场景重建一直是个计算密集型任务。传统方法重建1000帧图像规模的场景往往需要数小时甚至更长时间,而英伟达最新发布的VGG-T3技术将这个时间压缩到了惊人的54秒。这个突破性进展来…

2026/8/6 0:04:22

深度解析旅游网站建设的意义及其对行业发展的深远影响与核心价值体现

在这个数字化浪潮席卷全球的今天,我们似乎已经忘记了,曾经有一段时间,人们想要去一个陌生的地方,只能靠在书桌前翻阅厚厚的旅游杂志,或者向刚从那里回来的朋友询问那些模糊不清的印象。那时候,“远方”是一个需要精打细算才能抵达的奢侈概念。而现在,只需要一部手机,轻…

2026/8/5 19:21:13

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/5 19:21:13

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/5 19:21:13

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…