C++基础教程之构造函数与析构函数

构造函数

当我们需要在对象创建时初始化一些数据的时候,我们不可能提供一个普通的成员方法供程序猿在对象创建后调用。因为如果程序猿故意或者无意间忘记了调用该方法,就可能导致程序出现偏离预期的结果。为了防止这种情况的发生,C++中提供了一种特殊的成员函数–构造函数。构造函数具有如下特点:

C++基础教程之构造函数与析构函数_第1张图片
更多C/C++资料下载,C/C++学习乐园:747821062


各种构造函数

C++基础教程之构造函数与析构函数_第2张图片
更多C/C++资料下载,C/C++学习乐园:747821062


默认构造函数 vs无参构造函数

当我们没有显式的在声明中添加构造方法时,编译器会默认提供一个空参列表且没有任何行为的默认构造方法,就像下面这样 :Student(){}

拷贝构造函数

拷贝构造函数,又称复制构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。其形参必须是引用,但并不限制为const

综合案例

C++基础教程之构造函数与析构函数_第3张图片
更多C/C++资料下载,C/C++学习乐园:747821062


不同得构造函数有不同得作用,测试函数如下:

C++基础教程之构造函数与析构函数_第4张图片
更多C/C++资料下载,C/C++学习乐园:747821062


析构函数

析构函数(destructor) 与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,delete会自动调用析构函数后释放内存)。

当程序中没有析构函数时,系统会自动生成析构函数,析构函数有如下特点:

C++基础教程之构造函数与析构函数_第5张图片
更多C/C++资料下载,C/C++学习乐园:747821062


注意:C++基础教程,并不是构造函数和析构函数得全部内容

你可能感兴趣的:(C++基础教程之构造函数与析构函数)