静态指针成员变量用new得到的,就一定是在heap上,在程序退出时需要调用delete对指针成员进行析构。
由于静态成员的特殊性,所以如果需要对静态成员提前析构,则需要创建临时指针变量得到静态指针成员的值,然后通过临时指针变量对所指向的对象进行析构。然后将静态指针成员赋值为NULL。
mark:发现一个有趣的bug,在进行静态成员变量的析构时,vs2008竟然上报指针指向的地址不在HEAP内,百思不得其解啊。
静态成员析构
本文讨论了使用new初始化的静态指针成员变量如何在程序退出前正确地进行析构。特别强调了通过创建临时指针来析构静态成员,并提到了在Visual Studio 2008中遇到的一个关于指针不在heap上的奇怪bug。
静态指针成员变量用new得到的,就一定是在heap上,在程序退出时需要调用delete对指针成员进行析构。
由于静态成员的特殊性,所以如果需要对静态成员提前析构,则需要创建临时指针变量得到静态指针成员的值,然后通过临时指针变量对所指向的对象进行析构。然后将静态指针成员赋值为NULL。
mark:发现一个有趣的bug,在进行静态成员变量的析构时,vs2008竟然上报指针指向的地址不在HEAP内,百思不得其解啊。
1056
980

被折叠的 条评论
为什么被折叠?