一、什么是构造函数?
对象创建时,系统自动调用执行的成员函数,能够实现自动初始化的特殊函数。
- 构造函数的命名必须和类名完全相同,如果一个源文件中有多个类,那么构造函数必须与公共类同名,而一般的方法则不能和类名相同;
- 构造函数没有返回类型,也不能定义为void;
- 构造函数不能被直接(显式)调用,必须通过new运算符在创建对象时自动调用,而一般的方法在程序执行到该函数时才被调用。
二、什么是重载?
简言之,同名不同参,一个类可以有多个构造函数。
- 函数名必须相同;
- 方法的返回类型:可以相同,也可以不同;
- 参数不同:类型,个数,顺序。
动态构造函数可以重载,不带参数的构造函数可以将数据成员初始化为常量,携带多个参数的构造函数可以根据参数传递的值将数据成员初始化。
静态构造函数不允许携带参数,即一个类中只允许有一个静态构造函数。它在第一次访问静态成员或者第一次实例化动态该类的对象之前调用。
三、什么是析构函数?
在函数名前面加一个位取反符~,对象生命周期结束时,系统自动调用执行的成员函数。析构函数没有返回值,没有参数,只能有一个析构函数,不能重载。如果用户没有写析构函数,编译系统会自动生成一个缺省的析构函数,释放构造函数分配给对象的内存。