V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
peiqing9003ah
V2EX  ›  C++

析构函数有啥鸟用啊?

  •  
  •   peiqing9003ah · 2019-11-26 20:33:39 +08:00 · 3064 次点击
    这是一个创建于 1822 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我感觉析构函数都没几把鸟用啊。真正的 free 都在后面。

    那么问题来了,要析构函数 ,包括 delete 的调用析构, 有啥意义啊???

    Sricecake
        1
    Sricecake  
       2019-11-26 21:01:37 +08:00
    你要析构对象的成员变量也可能分配在堆中,也需要在这个时候把内存释放掉。
    peiqing9003ah
        2
    peiqing9003ah  
    OP
       2019-11-26 23:02:59 +08:00
    不是每个成员变量都是指针类型。 为了迁就堆中分配的内存能释放,而搞这么大一统,的。 没晒意思。
    wwqgtxx
        3
    wwqgtxx  
       2019-11-26 23:04:52 +08:00
    简单的来说,你在 class 的构造函数和成员函数中 new 的东西记得去析构函数中 delete
    而且析构函数还能实现很多其他的操作,比如 std::lock_guard,实现类似于其他语言的 try-with-resource 的功能
    至于“没几把鸟用”这种话,那只能说明你学的太浅,C++中模板方面还有一大堆看起来“没几把鸟用”、“看都看不懂”的功能,因为人家自然有人家该有的意义
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   982 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:25 · PVG 04:25 · LAX 12:25 · JFK 15:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.