社区
C++ 语言
帖子详情
怎么释放对象
paschen
版主
2012-03-09 09:16:18
写了一个类,比如class A,之后在代码中A a()创建了一个对象,之后要怎样释放掉这个对象呢,自己调用析构函数没有用,是不是只有自己用new来创建一个对象才可以在中途释放,如果要用new,要怎么写
...全文
299
14
打赏
收藏
怎么释放对象
写了一个类,比如class A,之后在代码中A a()创建了一个对象,之后要怎样释放掉这个对象呢,自己调用析构函数没有用,是不是只有自己用new来创建一个对象才可以在中途释放,如果要用new,要怎么写
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
GYTAnonymous
2012-03-10
打赏
举报
回复
一般数据,系统会在它作用域后自动释放,,只有通过new的需要程序员释放(其实,如果你没有释放,在整个程序结束后,也是会释放的。。但这不是好程序员该做的事 )
释放有
delete obj和 delete[] obj,后面是用来释放数组型的。。
LZ可以看看这篇我转载的文章,,,希望有所帮助( 我是在思考局部变量问题是,疑惑有的变量居然不会消失,而从网上查找资料的,,对LZ应该有所帮助 )
http://blog.csdn.net/gytanonymous/article/details/7060574
http://blog.csdn.net/gytanonymous/article/details/7060584
吓人的鸟
2012-03-10
打赏
举报
回复
[Quote=引用 4 楼 ccgmi 的回复:]
new出来的对象是在内存的堆中分配的,需要程序员自己用 delete来释放,
delete只是负责对析构函数的调用,如果程序员的析构函数里没有写出全部
释放内存操作,内存还是会泄露,
而楼主的操作是在栈中分配的内存,
由系统自动释放,不用管它的
[/Quote]
正解
paschen
版主
2012-03-10
打赏
举报
回复
还有,这样的语句:
sss:
A a();
//代码
goto sss;
这样a定义了2次,为何测试后发现仍可以,是不是在goto前就释放了该对象
paschen
版主
2012-03-10
打赏
举报
回复
[Quote=引用 5 楼 zhizichina 的回复:]
new出来的要主动delete,一般来说对象的创建是A *a = new A;而不是new A();这是非常常见的错误。需要与java相区分。
没有new出来的对象由系统自动释放。
[/Quote]
A *a = new A之后要怎么写,假如A的构造函数有参数
蓝枫10
2012-03-10
打赏
举报
回复
如果不是申请堆的话
离开作用域后自动调用析构函数···
new的对象
你要自己把它delete掉
这时就会调用析构函数···
quwei197874
2012-03-10
打赏
举报
回复
看变量存储方式和作用域,栈里的对象离开作用域后自动收回;自己new出来的要delete;全局的进程结束自动推出
xinen8721
2012-03-10
打赏
举报
回复
可以用类自身的析构函数
A *a = new A();
释放空间:
a.~A();
muyi66
2012-03-10
打赏
举报
回复
A *a = new A();
paschen
版主
2012-03-10
打赏
举报
回复
我用new的话
A *a = new A
怎么让他执行构造函数
支持英文数字
2012-03-09
打赏
举报
回复
new出来的要主动delete,一般来说对象的创建是A *a = new A;而不是new A();这是非常常见的错误。需要与java相区分。
没有new出来的对象由系统自动释放。
CCGMI
2012-03-09
打赏
举报
回复
new出来的对象是在内存的堆中分配的,需要程序员自己用 delete来释放,
delete只是负责对析构函数的调用,如果程序员的析构函数里没有写出全部
释放内存操作,内存还是会泄露,
而楼主的操作是在栈中分配的内存,
由系统自动释放,不用管它的
u_topian
2012-03-09
打赏
举报
回复
楼主的定义方式不用自己去释放,a所处的函数体运行完时,
自会调用a的析构函数。想要用new的话这样:
A *a = new A();
用完之后别忘了用delete释放内存,防止内存泄露。
LZS535261548
2012-03-09
打赏
举报
回复
通过new的需要 其他的好像是自动的
muyi66
2012-03-09
打赏
举报
回复
delete obj 用于释放对象
当然是要先new过的才能释放,要不然你释放什么?
Java
对象
与
对象
引用高级知识精讲
a、JVM中和
对象
结果、
对象
存储相关的知识。 b、Java中的CAS、AQS、JUC相关集合的使用案例、JVM中的常量池 c、如果使用图形化或者非图形化工具,监控JVM的运行情况,并干预JVM的运行 d、如何...
java
释放
对象
_java基础:
对象
的销毁
在java中每个被分配了内存的
对象
最终是要被清理的,那么当系统不能准确的去判断并
释放
这些
对象
时,就需要程序员在这个
对象
的类里面创建一个finalize()的方法,方法告诉程序当满足一个特定的条件时,就
释放
对象
。...
java
释放
对象
_请问在JAVA中如何删除一个
对象
,也就是
释放
一个
对象
所占的内存....
会调用
对象
的finalize方法来
释放
对象
占据的内存空间~java中垃圾回收以前听老师讲好像是内存满了他才去做一次整体垃圾回收,在回收垃圾的同时会调用finalize方法....
C++析构函数
释放
对象
的空间顺序。
1. 作用:
对象
消亡时,自动被调用,用来
释放
对象
占用的空间 2.特点: (1) 名字与类名相同 (2) 在前面需要加上"~" (3) 无参数,无返回值 (4) 一个类最多只有一个析构函数 (5) 不显示定义析构...
如果
对象
的引用被置为null,垃圾收集器是否会立即
释放
对象
占用的内存?
不会立即
释放
对象
占用的内存。 如果
对象
的引用被置为null,只是断开了当前线程栈帧中对该
对象
的引用关系,而 垃圾收集器是运行在后台的线程,只有当用户线程运行到安全点(safe point)或者安全区域才会扫描
对象
引用...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章