您的位置:首页 > 编程语言 > C语言/C++

c++知识总结(5)

2017-08-10 09:25 246 查看
拷贝构造函数:

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

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

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

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

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

析构函数:

什么时候会调用析构函数

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

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

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

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

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

5.对于临时对象,当创建它的完整表达式结束时被销毁。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: