构造函数与析构函数

来源:互联网 发布:微信二级分销系统源码 编辑:程序博客网 时间:2024/06/10 04:26

设置意图

    某些类的对象,必须在对它进行了初始化以后才能使用。对于某些类的对象在消亡前,往往也需要执行一些操作,做一些善后的处理。初始化和扫尾的工作给类的用户带来了额外的负担,使他们觉得类和内置类型还是不一样。

用户希望使用类的对象就和使用内置类型的变量一样,一旦定义了,就能直接使用。用完了,由系统自动回收。


构造函数和析构函数是特殊的成员函数

构造函数:为对象赋初值。
析构函数:执行与构造函数相反的操作,通常执行一些清理工作,如释放分配给对象的动态空间等。


构造函数的作用

说明定义对象时,如何为对象赋初值
由系统在定义对象时自动调用
如果没有给类定义构造函数,编译系统会自动生成一个缺省的构造函数。它只为对象开辟存储空间,空间中的内容为随机数。


构造函数的特点

构造函数的名字必须与类名相同
构造函数可以有任意类型的参数,也可以不带参数,但不能具有返回类型。因此在定义构造函数时,不能说明它的类型,甚至说明为void类型也不行。
构造函数可以重载


析构函数的特点

析构函数在撤销对象时,完成一些善后工作,由编译系统自动调用.
析构函数与构造函数名字相同,但它前面必须加一个波浪号(~).
析构函数没有参数,没有返回值,也不能重载。
若定义类时没有定义析构函数,编译系统会自动生成一个缺省的空析构函数.
并不是每个类都必须要有析构函数。
一般在构造函数中有动态申请内存的,必须有析构函数。
原创粉丝点击