构造函数和析构函数

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 }
View Code

 

posted @ 2019-09-25 11:34  ChunhaoMo  阅读(482)  评论(0编辑  收藏  举报