注意pointer的构造函数,它将自己注册到根集中去。
再看看根集:
gc_register 函数也就是做了一个push_back。
有人会问,那要是出现这种情况:
那不是pB->pA在堆上吗?不应该属于根集呀。这个问题就要和内存块管理扯上关系啦,下篇再说整个垃圾回收器已经写完并简单的测试代码在这里,有兴趣可以看看并测试。