构造函数和析构函数

1.构造函数,即没有返回值也不用写void,直接就是类名。构造函数可以有参数,所以可以发生重载,程序在调用对象的时候会自动调用构造函数,不用手动调用且只会调用一次

2.析构函数,它和构造函数有一个共同的特点就是都没有返回值也不用写void,析构函数没有参数所以也必不可能发生重载,析构函数的函数名也是类名,但是要在类名前加上一个~符号,程序在对象销毁的时候会自动调用析构函数,不用手动调用且只会调用一次

3.构造函数和析构函数都是必须有的实现,如果我们不自己提供编译器也会自己提供,若我们写得有那么编译器优先使用我们所写的函数。

4.下面演示一下

在我们调用了对象后,构造函数便自动调用了,又因为我们创建的类的对象是在函数中,所以为局部变量(毋庸置疑),在栈区使用完后便会销毁,当对象销毁时析构函数又会被调用。

5.构造函数有两种分类方式:有参构造和无参构造

按类型分为普通构造和拷贝构造,除了拷贝构造外就全是普通构造

无参构造函数的调用: Myclass myclass; 注意不要加(),否则会被认为是函数的声明

下图是有参函数的调用 Mycalss myclass(10);

拷贝函数的调用,注意拷贝函数的书写,因为是拷贝了一个对象的属性进去,所以这个被拷贝的对象在拷贝后不能进行改变,所以用const,引用的话也方便

相关推荐
小羊没烦恼!37 分钟前
T-SQL查询进阶--理解SQL SERVER中的分区表
服务器·开发语言·前端·javascript·html
小蒜学长41 分钟前
微信小程序-高校自习室管理系统(代码+数据库+LW)
java·spring boot·后端·微信小程序·自习室管理
鸥梨菌Honevid1 小时前
UVM 中 REQ 和 RSP 类型详解:从通信模型到 item_done 与 put_response
java·前端·servlet
爱吃香菜的初学者1 小时前
十六.Linux——多线程(2)
linux·运维·开发语言
瑞克-桑切斯1 小时前
真实企业场景 运维安全与管理
java·网络·github
jeo陽1 小时前
04-循环实战:素数、最大公约数、级数求和与枚举法
c语言·开发语言·数据结构
老板一杯拿铁1 小时前
Java 八股文面试详解:从基础到进阶的全面梳理
java·面试
const_qiu1 小时前
第 2.5 章 2.5.4-2.5.5:JWT 双 Token 与声明式权限守卫
java·人工智能
暖核1 小时前
kubeadm 集群运维:Worker 节点下线删除、整套集群销毁重建指南
运维·开发语言·php
bug菌1 小时前
一个周末就想把短链服务推到 10 万 QPS,真能靠加 Redis 做到吗?
java·redis·go