C++为什么要有构造函数和析构函数?
传送门:https://blog.csdn.net/u013565071/article/details/78267440
先说一下生活中的场景,大家买的各种电子设备,是不是有个叫出厂设置,就是根据需要给这些设备初始化,进行一些设置
比如时间你得是你那个地方的吧,是美国就不合理了。
同时,当这些设备你不用的时候,你可以买个别人,但是不可能就直接给别人了,你里面可能有些东西,你不想让别人知道
你就必须把你设备里的数据清理掉,不然就像那个香港修电脑哪个^_^
那么c++对象的初始化和清理是两个很重要的安全问题
对象未初始化,你用的时候结果是未知的
同时用完不清理,也会造成安全问题,比如内存泄露什么的
c++中提供了构造函数和析构函数来解决上述两个问题
构造函格式 类名()
没有返回类型,void也不需要
可以由参数,可以重载
析构函数格式 ~类名()
没有返回类型,void也不需要
不可以有参数,不可以发生重载
这两个函数,都是由系统自动调用,不需要认为调用。而且你可以不写,编译器会帮你写,但是里面的实现是空实现

1 #include<bits/stdc++.h>
2 using namespace std;
3
4 class stu
5 {
6 public:
7 stu()
8 {
9 puts("stu构造函数调用");
10 }
11 ~stu()
12 {
13 puts("stu析构函数调用");
14 }
15 int s_age;
16 };
17
18 void test()
19 {
20 stu s;
21 }
22
23 int main()
24 {
25 test();
26 return 0;
27 }

