C++之构造函数和析构函数总结

来源:互联网 发布:人知将死 其言也善后句 编辑:程序博客网 时间:2024/05/20 08:21

C++等级考试已经临近了,而我还是对它没有一丝的“赶脚”。无奈之下,只有先通过做题来应付考试了……

这几天一直在看那本被我“抛弃”了很多遍的《C++上机考试题库》的书。但是,大部分仍然是搞不懂。所幸的是,对其中的构造函数和析构函数有了一丁点儿的了解,在此写出来也算是总结一下,加深些印象……

构造函数

简介构造函数是一个计算机术语,是一种特殊的方法,主要用来在创建对象时初始化对象,构造函数的命名必须和类名完全相同,而一般方法则不能和类名相同。以上都是官方比较正式的语言。让我自己理解的是构造函数就像开一辆车的时候我们要在开车前仔细调好刹车、加速器、离合器、座椅位置、汽油、机油等一系列的操作。

特征:

1.   函数名与类名相同。

2.   无函数(返回)类型说明

3.   构造函数在一个新的对象被建立时,该对象所隶属的类的构造函数自动的被调用,对这个对象完成初始化工作。

4.   在上一条提到的新对象的建立包括两种情况:在对象说明语句中,用new函数建立新的动态对象时。

5.   如果一个类说明中没有给出现实的构造函数,系统将自动给出一个缺省的(隐式的)构造函数。

6.   如果说明中包括多个构造函数,一般他们有不同的参数表和函数体。系统在(自动)调用构造函数时按照一般函数从在的规则选择其中之一。

其中前面的两条在做题的时候,是判断构造函数的比较实用的方法。


析构函数

简介:析构函数(destructor) 与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。说白了就像刚刚在构造函数中举得例子一样。它就是车辆长时间不开了,我们就需要将他的各种零件都调到比较松散的状态,水箱的水都要放掉……

特征:

1.  析构函数类名一律为:~<类名>,如:~point

2.  无函数返回类型

3.  无参数

4.  一个类只可以有一个析构函数,也可以缺省。

5.  在对象注销时,包括用delete函数释放动态对象时,系统自动调用析构函数。

6. 若某个类定义中没有给出显示的析构函数,则系统自动给出一个缺省的(隐式的)析构函数。如:~<类名>(void){}  

其中,前面的三条也可以作为判断是否为析构函数的判断标准。


0 0
原创粉丝点击