GeekBand C++第二次课

这一次课的重点,是讲解了C++四大函数:构造函数,析构函数,以及拷贝构造函数和拷贝赋值函数。基本知识点,我想不用再赘述了,我是想补充几点关于这四大函数的注意事项,因为在视频中侯老师没有讲到。

1、直接初始化与拷贝初始化的区别

例如 string dots(10,'.');//直接初始化

string s(dots);//直接初始化

string s2 = dots//拷贝初始化

当使用直接初始化时,我们实际上是要求编译器使用普通的函数匹配来选择与我们提供的参数最匹配的构造函数。但我们使用拷贝初始化时,我们要求编译器将右侧运算对象拷贝到正在创建的对象中,甚至可以进行类型转换。

2、什么时候会调用析构函数

无论何时一个对象被销毁,就睡调用其析构函数:

1、变量在离开其作用域时被销毁。

2、当一个对象被销毁时,其成员被销毁。

3、容器(无论是标准容器还是数组)被销毁时,元素被销毁。

4、对于动态分配的对象,当对指向它的指针应用delete运算符时被销毁

5、对于临时对象,当创建它的完整表达式结束时被销毁。

通俗的说,构造了多少次,就会析构多少次。结合着本次作业可以作更为形象的说明。


GeekBand C++第二次课_第1张图片

运算结果如下:


GeekBand C++第二次课_第2张图片

清晰地看到构造函数调用了几次,析构函数就调用了几次。

你可能感兴趣的:(GeekBand C++第二次课)