构造函数和析构函数

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

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

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

4.下面演示一下

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

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

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

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

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

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

相关推荐
俊昭喜喜里1 分钟前
c#中的构造函数
开发语言·数据库·c#
事圆则缓6 分钟前
Java 常见数据结构与 Android 使用场景
android·java·数据结构
hahaha601612 分钟前
HLS高层次综合设计--axi之burst纠偏
开发语言·算法·fpga开发·c#
xieliyu.19 分钟前
计算机网络:Fiddler 抓包工具使用教程 + HTTP 协议报文格式详解
java·笔记·计算机网络·测试工具·http·java-ee·fiddler
SunnyDays101119 分钟前
如何使用 Python 给 PDF 添加附件:文档附件与附件注释
开发语言·python·pdf
步行cgn20 分钟前
@Value 详解:Spring 属性注入的核心注解
java·python·spring
2401_8504811727 分钟前
UVA815
java
霸道流氓气质30 分钟前
Spring AI 多租户隔离方案
java·人工智能·spring
学逆向的34 分钟前
扩展PE头属性说明
开发语言·网络安全·pe
不会就选b36 分钟前
Linux之socket编程(七)----序列化与反序列化(1)
java·linux·服务器