jinjiebang
2016-05-13 00:36
采纳率: 100%
浏览 3.6k

c++在类的方法中被实例化的对象能自动释放内存么

我没有使用new,就是最一般的实例化,如果没有的要怎么释放,求大神教具体的方法

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • ZGZ1002 2016-05-13 01:11
    已采纳

    没有使用new,就是最一般的实例化,系统会自动释放的。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • threenewbee 2016-05-13 00:52

    如果没有用new,那么是在堆栈上分配的,不需要释放。

    评论
    解决 无用
    打赏 举报
  • 恋恋西风 2016-05-13 01:17

    1。C++ C,都没有自动释放内存的机制,内存是需要自己管理 的;
    2。如果是自己 new 的内存一定要记得,释放 掉在不用的时间,否则就会造成内存泄露;

    评论
    解决 无用
    打赏 举报
  • shiter 2016-05-13 05:22

    如果你的这个对象在类方法中,而这个类是被new出来的 ?我想应该也得手动释放一下吧,这个我觉得得具体问题具体分析
    class a
    {

    class b;
    }

    new aa = a;

    评论
    解决 无用
    打赏 举报
  • 吃西瓜的小猪崽 2016-05-13 08:37

    当对象的生命周期终止时会自动释放对象所占用的内存。
    new声明的对象保存在堆中,直到调用delete时生命周期才终止。对象销毁内存被释放。
    而直接创建的对象是保存在局部栈中,出了大括号,生命周期就终止了,对象销毁自动释放内存。函数体就是用一个大括号包起来的,函数内声明的对象,出了函数就自动释放内存销毁对象了。
    如果担心new出来的对象忘记释放导致内存泄露,可以考虑使用智能指针来错作对象,当程序不再使用某个对象时,智能指针会自动销毁对象释放内存。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题