首页 > 作文

一起来学习C++的构造和析构

更新时间:2023-04-06 02:46:56 阅读: 评论:0

1. 构造函数

1.1 构造函数长什么样子

(1) 函数名和类名相同

(2) 没有返回值

(3) 如果不写构造函数,任何类中都存在一个默认的构造函数

i 默认的构造函数是无参的

ii 当我们自己写八大工学院了构造函数,默认的构造函数就不存在

(4) 构造函数在构造对象的时候调用

(5) delete可以用来删掉默认的函数

(6) 指定使用默认的无参构造函数,用default说明

(7) 允许构造函数调用另一个构造函数,只是要用初始化参数列表的写法

(8) 初始化参数列表 : 只有构造函数有

i 构造函数名(参数1,参数2,…):成员1(参数1),成员2(参数2),…{}

ii 避免形参名和数据成员名相同的导致问题

1.2 构造函数干嘛的

(1) 构造函数用来构造对象

(2) 构造函数更多是用来初始化数据成员

1.3 思考

(1)为什么不写构造函数可以构造对象? 是因为存在一个默认的无参构造函数,所以可以构造无参对象

(2) 构造函数重载为了什么? 为了构造不同长相的对象。

2. 析构函数

2.1 析构函数长什么样子?

(1) 无返回值

(2) 无参数

(3) 函数名: ~类名

(4) 不写的话会存在默认的析构函数

(5) 析构函数不需要自己 调用,对象死亡的之前会调用析构函数

2.2 析构函数用来干嘛?(什么时候需要自己so much love手动写析构函数)

(1) 当类中的数据成员是指针,并且动态申请内存就需要手写析构

外墙清洗方案(2) 析构函数用来释放数据成员申请动态内存

3. 拷贝构造函数

-> 拷贝构造函数也是构造函数,长相和构造函数一样的,只是参数是固定 .拷贝构造函数唯一的参数是对对象引用

-> 不写拷贝构造函数,也存在一个默认的拷贝构造函数

-> 拷贝构造函数作用: 通过一个对象去初始化另一个对象

问题

i 什么时候调用拷贝构造?

答:当通过一个对象去创建出来另一个新的对象时候需要调用拷贝

ii 拷贝构造什么时候需要加const修饰参数?

答:当存在匿台州学院怎么样名对象赋值操作的时候,必须要const修饰

4. 深浅拷贝

(1)浅拷贝: 默认的拷贝构造叫做浅拷贝

(2)深拷贝: 拷贝构造函数中做了new内存操作,并且做拷贝焦距怎么求赋值的操作

5. 构造和析构顺序问题

(1)普通对象,构造顺序和析构顺序是相反

(2)new出来的对象,delete会直接调用析构函数

(3)static对象,当程序关闭的时候,生命周期才结束,所以是最后释放

6. c++结构体

答疑:

为什么要手动写析构函数? 因为默认的不会释放数据成员动态申请的内存函数名和类型相同函数叫做构造函数函数名字是~类名的无参函数叫做析构函数以对象的引用为参数的构造函数叫做拷贝构造函数(复制构造函数)怎么写出来,默认的构造函数,就是那种在没有传参的时候的那一串垃圾值

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注www.887551.com的更多内容!

本文发布于:2023-04-06 02:46:55,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/0fd687e202f8d24cb88d5a102007acd6.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:一起来学习C++的构造和析构.doc

本文 PDF 下载地址:一起来学习C++的构造和析构.pdf

标签:函数   对象   参数   成员
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图