delete this
来源:互联网 发布:java自带词典 编辑:程序博客网 时间:2024/06/06 03:11
1.在delete this之后进行的其他任何函数调用,只要不涉及到this指针的内容,都能够正常运行。一旦涉及到this指针,如操作数据成员,调用虚函数等,就会出现不可预期的问题。
2.如果在类的析构函数中调用delete this,delete this会去调用本对象的析构函数,而析构函数中又调用delete this,形成无限递归,造成堆栈溢出,系统崩溃。
note:
根本原因在于delete操作符的功能和类对象的内存模型。当一个类对象声明时,系统会为其分配内存空间。在类对象的内存空间中,只有数据成员和虚函数表指针,并不包含代码内容,类的成员函数单独放在代码段中。在调用成员函数时,隐含传递一个this指针,让成员函数知道当前是哪个对象在调用它。当 调用delete this时,类对象的内存空间被释放。在delete this之后进行的其他任何函数调用,只要不涉及到this指针的内容,都能够正常运行。一旦涉及到this指针,如操作数据成员,调用虚函数等,就会出现不可预期的问题。
参照资料:
http://blog.sina.com.cn/s/blog_4b4cf2af0100ywgv.html
0 0
- delete this
- delete this
- delete this?
- delete this
- delete this
- delete this
- delete this
- delete this
- delete this
- delete this的使用
- 有关delete this
- 对象自杀 delete this
- delete this的使用
- delete this的用法
- delete this的用法
- delete this的使用
- delete this的使用
- delete this 的用处
- C++中的单例模式
- 【技术晨读】2- MYSQL相关博文
- Android Touch 事件机制
- 拷贝别人的vs 工程或者源文件到自己电脑运行时出现,无法找到标准库函数头文件以及无法识别未命名的namespace std
- MySQL结构同步时分区表无法同步的问题
- delete this
- PhoneGap Ios 使用NPM 进行安装和环境搭建
- UnrealEngine4(虚幻4)这次来真格的了
- 程序猿
- Android中如何让DialogFragment全屏(DialogFragment fullscreen)
- EP6: Wythoff’s Game (威佐夫博弈)
- MFC如何给对话框添加菜单
- linux常用命令整理
- IOS上AudioSession设置, 切换扬声器和听筒详解