使用了垃圾回收算法后,GC_Free( )一般只由垃圾回收算法来调用,用户就不需要调用GC_Free( )了,也不需要花费时间去关心内存释放的问题了。
下面给出使用GCPtr类管理引用计数的一个初步编码实现。
/* 支持垃圾内存回收的GCPtr类,使用模板实现 */
template <class T> class GCPtr {
public:
T *m_pAddr; /* 用来记住定义的指针地址便于析构函数使用 */
public:
GCPtr(T *t = NULL)
{
m_pAddr = t;
INT *p = (INT *)m_pAddr-1;
*p += 1;
};
~GCPtr()
{
T *p = m_pAddr;
INT *p = (INT *)m_pAddr-1;
*p-= 1;
};
};
文章来源于领测软件测试网 https://www.ltesting.net/