【问题标题】:Before Virtual destructor concept, all programs had memory leak?在虚拟析构函数概念之前,所有程序都有内存泄漏?
【发布时间】:2015-07-12 02:36:35
【问题描述】:

我在想,当没有virtual destructor 的概念时,那段时间开发的所有程序都有memory leak 的问题,或者他们正在使用其他概念来避免内存泄漏?

【问题讨论】:

  • 您正在考虑哪些计划或时间段?即使在今天,也有一些类故意不使用虚拟析构函数,the standard library collections (and prior to that the STL) do not。仍然有人使用 C 进行完全手动内存管理;并且 C++ 总是有虚拟析构函数。你必须缩小/集中你的问题并做一些阅读,除了“我在想......”之外做出一些事情。请看How to Ask
  • 感谢 HostileFork 提供链接!
  • 不客气;我鼓励您即使在投反对票或有问题被搁置的情况下也要坚持不懈。在几年的时间里,我从参加 StackOverflow 中学到了关于 C++11 进步的大部分知识。即使阅读highly upvoted Q&A,您也可以快速学习。尽可能多地阅读!尝试回答“简单”的问题,有时并没有你想象的那么简单……可能会出现更好的答案。

标签: c++11 virtual destructor


【解决方案1】:

不,一般过去没有虚拟析构函数的程序没有内存泄漏。谈论 C++ 虚拟析构函数与其他虚拟函数和继承机制几乎同时被发明,因此它在某种程度上是用内置的虚拟析构函数设计的。

那些析构函数需要和明确的virtual 关键字。

【讨论】:

    猜你喜欢
    • 2012-02-03
    • 2012-09-02
    • 2012-09-12
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 2018-01-10
    • 2018-08-19
    • 2016-04-02
    相关资源
    最近更新 更多