C++中对象的初始化和清理是两个很重要的问题,因此设计者们采用构造函数和析构函数来解决这两个问题,这两个函数编译器会自动调用,完成对象的初始化和清理工作。如果我们在设计类的时候没有提供构造和析构函数,编译器会提供空实现的构造函数和析构函数。
构造函数:
作用:创建对象时为对象的成员属性赋值,由编译器自动调用;
语法:class name(){}
1.构造函数名称与类名相同;
2.没有返回值,也不写void;
3.构造函数可以有参数,可以发生重载;
4.程序在创建对象时会自动调用构造,而且只会调用一次。
析构函数:
作用:在对象销毁前系统自动调用,执行一些清理工作;
语法:~class name(){}
1.析构函数名称与类名相同,在类名前加~;
2.没有返回值,也不写void;
3.析构函数不可以有参数,所以不能发生重载;
4.程序在对象销毁时会自动调用析构函数,只会调用一次。
构造函数的分类和调用:
按照参数分为:有参构造和无参构造;
按照类型分为:普通构造和拷贝构造。
调用方式:括号法、显示法、隐式转换法。
下面是一个具体的例子:
class Student{
public:
Student(){