object obj 和 object *obj = new object() 有什么区别
时间:2010-08-14
来源:互联网
本帖最后由 evaspring 于 2010-08-14 15:42 编辑
class object {
public:
object(){}
~object(){}
};
我只知道 object obj ; 这样声明的变量在函数执行完了后会自动执行 析构函数 ,而new object() 要 delete 才行。
那我不可以尽量在函数里面都像第一种方式声明变量,这样不就可以避免内存泄漏了?
class object {
public:
object(){}
~object(){}
};
我只知道 object obj ; 这样声明的变量在函数执行完了后会自动执行 析构函数 ,而new object() 要 delete 才行。
那我不可以尽量在函数里面都像第一种方式声明变量,这样不就可以避免内存泄漏了?
作者: evaspring 发布时间: 2010-08-14
如果你想obj在退出函数后还能用,就不能这么玩了
作者: lllaaa 发布时间: 2010-08-14
C++不懂,不过猜测,第一种声明后会分配Object需要的空间,第二种声明只是分配了一个指针的空间而已。
在函数中做第一种声明,退出以后空间就被回收。住外传引用就是dangle pointer。
在函数中做第一种声明,退出以后空间就被回收。住外传引用就是dangle pointer。
作者: tempname2 发布时间: 2010-08-14
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28