构造函数:是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象的成员变量赋初始值。一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们即构造函数的重载。
特性:
(1)函数名与类名相同
(2)没有返回值
(3)构造函数不能被直接调用,必须在创建对象时才会自动调用且在对象的生命期内仅调用一次
(4)有初始化列表
(5)构造函数可以重载,实参决定了调用那个构造函数
(6)如果没有显式定义时,编译器会提供一个默认的构造函数
(7)无参构造函数和带有缺省值的构造函数都认为是缺省构造函数,并且缺省构造函数只能有一个
(8)构造函数不能用const修饰
拷贝构造函数:只有单个形参,而且该形参是对本类类型对象的引用(常用const修饰),创建对象时使用已存在的同类对象来进行初始化,这样的构造函数称为拷贝构造函数。
特点:
(1)是构造函数的重载
(2)它的参数必须使用同类型对象的引用传递
(3)如果没有显式给出定义,系统会自动合成一个默认的拷贝构造函数。
析构函数:与构造函数相反,当对象结束其生命周期时,系统自动执行析构函数,析构函数往往用来做一些清理工作。
特点:
(1)与类名同名,只是在函数名前面加一个位取反符~
(2)析构函数不能带任何参数,也没有返回值
(3)只能有一个析构函数,不能重载
(4)如果用户没有编写析构函数,系统会自动生成一个缺省的析构函数