构造函数和析构函数

Posted mch5201314

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了构造函数和析构函数相关的知识,希望对你有一定的参考价值。

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

技术图片

 

以上是关于构造函数和析构函数的主要内容,如果未能解决你的问题,请参考以下文章

构造函数和析构函数能不能被继承

构造函数和析构函数

python中的构造函数和构造函数和析构函数的作用

c++中的构造函数和析构函数

5 规则(用于构造函数和析构函数)过时了吗?

构造函数和析构函数