C++_构造函数

本文介绍了C++中的构造函数,包括其定义、重载和默认构造函数的使用。重点讨论了复制构造函数,区分了深复制与浅复制的概念,并指出系统默认的复制构造函数通常是浅复制。此外,还提到了隐式类型转换以及析构函数在内存管理中的作用。
摘要由CSDN通过智能技术生成

什么是构造函数

请添加图片描述

请添加图片描述
结构体、共用体、枚举也类似。
请添加图片描述

请添加图片描述

构造函数的定义

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述
类类型:类里面的类对象,如果自身没有默认构造函数,需要在类中一并说明。
请添加图片描述

请添加图片描述

(3)初始化式可以是任意的形式(花括号中的表达式)。

构造函数的重载

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

定义默认构造函数

请添加图片描述

请添加图片描述

请添加图片描述
两种默认构造函数形式:

  1. 形式参数均是默认参数;
  2. 不带参数。

请添加图片描述

隐式类类型的转换

请添加图片描述
转换构造函数。
请添加图片描述
第14行进行了类型转换。

请添加图片描述
指定数据类型的引用。
请添加图片描述

一般不采用这样的隐式构造函数。

复制构造函数

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

构造函数只是初始化对象,没必要改变对象的值,因此用const更好。

请添加图片描述

合成复制构造函数

请添加图片描述

请添加图片描述

请添加图片描述
直接初始化应该也会调用自身定义的复制构造函数。
请添加图片描述

请添加图片描述

深复制与浅复制

请添加图片描述

浅复制指的是简单的将值进行拷贝。

请添加图片描述

深复制指的是将值和资源一起复制。

系统自动生成的复制构造函数都是浅复制。自己定义构造函数的目的是为了实现深复制。

请添加图片描述

请添加图片描述

注意第15行。

析构函数撤销存储空间。如果指向同一个数组,那么需要执行两次指针撤销,不符合常理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

右边是我女神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值