1.构造函数主要用来创建对象时完成对象属性初始化的一系列操作,当创建对象时,对象会自动调用它的构造函数。
一般来说,构造函数有三个作用:
- 给创建的对象建立一个标识符
- 为对象数据成员开辟内存空间
- 完成对象数据成员的初始化
3.在大多数情况下,在对象创建完成之后,我们需要对一些成员进行初始化,默认的构造函数无法满足,所以需要显示定义一个构造函数来覆盖掉默认的构造函数来完成初始化的工作,当用户自定义构造函数后,编译器就不会再为对象生成默认的构造函数。构造函数的名称与类名相同,并且没有返回值类型和返回值。
4.显示构造函数的定义可以在类内或类外进行。
5.对于有参数的构造函数可以利用传入的函数对成员属性进行初始化
6.构造函数的初始化可以在构造函数的函数头后面通过单个冒号:引出的就是初始化表。
Point(int x = 0, int y = 0):xPos(x), yPos(y) // 使用初始化表7.析构函数。
与构造函数相反,析构函数是在对象被撤销时自动调用,用于对成员撤销的一些清理工作,析构函数名与类名相同,紧贴在名称前面用波浪号~与构造函数进行区分,析构函数没有返回类型,也不能指定参数,析构函数只有一个,不能被重载。当对象被销毁时析构函数被自动调用,析构函数可以被显示的调用,以释放对象中动态申请的内存。
当用户没有显示定义析构函数时,编译器同样会为对象生成一个默认的析构函数,但是默认生成的析构函数只能释放类的普通数据成员所占的空间,无法释放通过new或malloc进行申请的空间,因此有时候我们需要自己显示的定义析构函数对这些申请的空间进行释放,避免造成内存泄漏。
参考 http://www.cnblogs.com/mr-wid/archive/2013/02/19/2917911.html