C++————构造函数与析构函数

news/2024/7/24 2:30:43 标签: c++, 开发语言

在C++中,我们有一个专门有一个函数给类的成员赋值,这个赋初值的工作由构造函数来完成。

说明:

1.构造函数的名字必须与类名相同,否则编译程序将把它当成一般的成员函数来处理。

2.构造函数没有返回值,在定义构造函数时,是不能说明它的类型的,void类型也不可以。

3.与普通成员函数一样,构造函数的函数体可写在类体内,也可以写在类体外。

4.构造函数一般用于赋初值,根据用户的需求设置。

5.构造函数可以带默认参数。

6.在实际的应用中,通常需要给每个类定义构造函数。如果没有给类定义构造函数,系统自动生成一个默认的构造函数,这个构造函数的函数体是空的。

7.构造函数是在对象定义的时候调用的。

8.构造函数还支持重载。

我们来使用一下构造函数

我们输出30

这个是我们赋初值的效果。 

 

我们接下来看看其他赋初值的方法

 

 我们如何验证构造函数是在对象建立的时候进行赋初值

 

构造函数赋初值是在对象建立的时候进行的。

析构函数有什么作用,它与构造函数功能有着相反的作用,构造函数是赋初值,我们的析构函数是一个善后,释放内存分配给对象的空间,我们在对象销毁的时候会调用析构函数

析构函数说明:

1.析构函数与类名相同,但它前面必须加一个波浪号(~)

2.析构函数不返回任何值。viod类型也不行。

3.析构函数没有参数,不可以被重载。

4.撤销对象时,编译系统会自动调用析构函数。

5.new申请的对象,如果我们不手动释放,不能调用析构函数。

析构函数调用:

1.函数结束。

2.程序结束。

3.包含局部函数变量的块结束。

4.调用删除运算符(delete)。

析构函数的使用

假如这个是程序阅读题,我们应该怎么输出。

先调用构造函数,所以先输出一句调用构造函数的语句,如何输出29,如何再调用一个构造函数,输出200。

我们析构函数应该先释放那个对象,这个涉及到函数栈的问题,先创建的对象在栈低是最后释放的,所以我们先释放p2对象,p1对象最后释放。

这个就像一个死胡同,只有先进来的人出去,前面进来的才能出去。

 

new申请的空间不能自动调用析构函数。

 

使用delete释放空间后就会调用析构函数, 

 


http://www.niftyadmin.cn/n/179530.html

相关文章

文章生成器-免费的文章生成器

随着信息爆炸的时代,自媒体人员不仅需要创造性的策略,还需要快速产生具有高质量文章的能力,这样才能快速响应趋势并保持优势。文章生成器,一款基于人工智能和自然语言处理技术的文本生成软件,可在没有任何人工干预的情…

蓝桥杯算法心得——小明的彩灯(差分)

大家好,我是晴天学长,今天的题目类型是前缀和的亲戚(差分),两个互逆,实际运用非常广泛,加油!需要的小伙伴请自取哦!💪💪💪 1 &#xf…

整懵了,蚂蚁金服4面成功拿下测开offer,涨薪10k,突然觉得跳槽也不是那么难

蚂蚁的面试挺独特的,每轮面试都没有HR约时间,一般是晚上8点左右面试官来一个电话,问是否能面试,能的话开始面,不能就约一个其他时间。 全程4面,前四面技术面,电话面试,最后一面是HR面…

Linux shell jq工具(shell读取json、shell脚本读取json、shell json、json工具)

文章目录jq工具安装在线安装离线安装使用方法读取和修改 JSON 文件中的一个字段(麻烦)读取和修改 JSON 文件中的一个字段(简洁)1读取和修改 JSON 文件中的一个字段(简洁)220230329 这个稍复杂,读…

七、MyBatis自定义映射resultMap

【前提准备】 ①创建表t_emp和t_dept ②创建实体类javaBean对象 ③创建mapper接口和映射文件 1.resultMap处理字段和属性的映射关系【表名的字段和实体类属性名称不一致】 表名是emp_name,实体类是empName不一致 ①在EmpMapper接口中 /*** 查询所有员工信息*/ List<Emp&g…

华为OD机试题【最近的点】用 Java 解 | 含解题说明

华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典本篇题目:最近的点 题目 同一个数轴 x 有…

ROHS认证怎么办理?周期多久?

RoHS是由欧盟立法制定的一项强制性标准&#xff0c;它的全称是《关于限制在电子电气设备中使用某些有害成分的指令》(RestrictionofHazardousSubstances)。该标准已于2006年7月1日开始正式实施&#xff0c;主要用于规范电子电气产品的材料及工艺标准&#xff0c;使之更加有利于…

华为OD机试题,用 Java 解【身高排序】问题 | 含解题说明

华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典本篇题目:身高排序 题目 小明今年升学到…