今天看Bjarne Stroustrup 的《The Design and Evolution of C++》,看到其中说85年前,他也想过把自动垃圾回收(GC)系统加入C++语言,没能实现的原因是当时的计算机性能跟不上,系统无法承受。
做了好几年的C++开发,为内存问题不知头疼过多少次的我,突然想,既然当时是因为客观原因不能实现的,让我们羡慕了Java和C#开发者这么多年,现在可观条件已经满足了,为什么C++委员会不能再修改一下C++,将GC加进去呢?这对我们将是多大的福利啊
-----------------------------
2013-12-03 更新
C++中没事使用GC机制,但是提供了另一种内存管理的机制RAII,即Resource Acquisition Is Initialization(内存获取即初始化)。
它的思想就是利用类对象管理申请的资源,在类对象析构函数的自动调用时释放资源。
因为析构函数是自动调用的,所以资源肯定会被自动释放。
std::auto_ptr 和 std::tr1::shared_ptr都是基于这一思想的。