big three三大函数:拷贝构造拷贝赋值析构函数
2016-11-16 11:49
162 查看
析构函数:
追问
追答
析构函数的调用:
在这个对象的作用域最后.. 比如你在main里面声明了一个类A..那么~A()会在main结束时调用.. 如果在自定义的函数f()里面声明了一个A 函数f结束的时候就会调用~A() 或者你delete 指向A的指针.. 或者显式的调用析构函数
追问
也就是说在包含该对象的函数的末尾就会调用析构函数喽?
追答
是的.... 局部的对象 在该对象声明的函数末尾被释放... 你可以看下作用域的定义..析构函数就是在对象的作用域的末尾释放 为了不误导人...我还是举个例子.. 如果是 class A { .... } void f() { A a; //这种情况a的作用域就是整个函数 在f末尾释放 } void f() { for(A a;a.yes();a++)//这里声明的是一个计数器a..(这种情况一般是迭代器).. { ... } //这里是a作用域结束的时候 调用析构函数 } void f() { A* p=new A; delete p;//A作用域结束 调用析构 } 如果A是全局对象..那么就在程序末尾释放
相关文章推荐
- GeekBand学习笔记:C++三大函数:拷贝构造、拷贝赋值、析构函数
- 结构体的构造、拷贝、赋值、析构和字符串的拷贝、构造、赋值和析构函数的比较
- 三大函数:拷贝构造,拷贝赋值,析构函数
- boolan第二周笔记:构造函数、拷贝构造、赋值构造、析构函数
- 构造函数和析构函数,拷贝构造,赋值重载,调用练习
- 构造函数和析构函数,拷贝构造,赋值重载,调用练习
- C++:析构函数、对象生命周期、类型转换构造、拷贝构造、拷贝赋值、深浅拷贝
- day05 this指针和常函数、析构函数(Destructor) 、拷贝构造和拷贝赋值
- 让我们一步一步实现一个完整的 String 类:构造、拷贝、赋值、移动和析构
- 拷贝构造,构造函数,析构函数的调用顺序
- c++的拷贝构造、拷贝赋值、移动构造、移动赋值
- string类构造、拷贝构造、赋值、操作符函数实现及注意事项
- 构造、拷贝构造、赋值
- 模板拷贝构造与赋值的不对称
- 拷贝构造-赋值构造-深拷贝-浅拷贝
- 聊聊“尾递归优化“简介拷贝构造&拷贝赋值
- 拷贝构造和赋值构造调用时机
- 构造函数,拷贝构造,析构函数,运算符重载。
- 拷贝构造和赋值重载,移动拷贝,赋值拷贝
- C++基础3 类:构造 拷贝 析构函数 静态变量函数 const初始化列表 new delete this 面向对象模型