在阅读 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
来源: http://www.bubuko.com/infodetail-2589084.html