• 【2018.05.05 C与C++基础】C++中的自动废料收集:概念与问题引入


    在阅读C++语言的设计与演化一书时,作者多次提到希望能设计出一个自动废料收集,然而出于种种考虑,始终未将自动废料收集纳入标准讨论中,而是由Coder自己考虑是否在程序中实现废料收集。

    当然了,许多Java-Coder在比较C++和Java时经常会提到C++中没有类似Java的自动废料收集功能,导致Coder必须在内存管理上耗费大量的精力,稍有不慎就会导致memory leakage甚至系统崩溃。

    语言的各种特性必然有其存在的理由,我们在享受指针带来的便利特性的同时,必须要保持足够的警惕,否则memory-leak或invalid pointer会让我们的热情逐渐消退。

    虽然Java提供的Garbage Collector有其天生的缺陷,但这一功能在目前的一些应用场景中确实非常方便,所以在C++中引入自动废料收集机制是可行的,并且可以在基于当前的标准及库上实现,不需要修改语言定义或者是要求编译器进行扩展。

    一. 参考资料及致谢

    1. C++中的废料收集

    https://yq.aliyun.com/wenji/99886

    2. 推荐一款纯正的C++垃圾收集器

    https://www.zhihu.com/question/51852685?from=profile_question_card

    3. C++设计模式之单例模式下的实例自动销毁(垃圾自动回收器)

    https://www.cnblogs.com/liuroy/p/5616264.html

  • 相关阅读:
    [LeetCode] Strobogrammatic Number III
    [LeetCode] Strobogrammatic Number II
    [Codeforces 1253E] Antenna Coverage
    [CodeForces 466C] Number of Ways
    UVa 806 四分树
    Uva 1572 自组合
    UVa Sculpture(离散化 floodfill)
    Uva 4916 Selling Cells(随机算法)
    UvaLive 4863 Balloons(贪心)
    UvaLive 4872 Underground Cables (最小生成树)
  • 原文地址:https://www.cnblogs.com/dengwenwu/p/8996837.html
Copyright © 2020-2023  润新知