c++知识总结(5)

来源:互联网 发布:淘宝卖家数据分析插件 编辑:程序博客网 时间:2024/06/05 08:21

拷贝构造函数:

如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都有默认值,则此构造函数时拷贝构造函数。拷贝构造函数的第一个参数必须是引用类型。如果其参数不是引用类型,则调用永远不会成功——为了调用拷贝构造函数,我们必须拷贝它的实参,但为了拷贝实参,我们又需要调用拷贝构造函数,如此无限循环。

拷贝初始化不仅在我们用=定义变量时会发生,在下列情况下也会发生:

1.将一个对象作为实参传递一个非引用类型的形参

2.从一个返回类型为非引用的函数返回一个对象

3.用花括号列表初始化一个数组中的元素或一个聚合类的成员。


析构函数:

什么时候会调用析构函数

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

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

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

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

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

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

原创粉丝点击