摘要:
待写 阅读全文
摘要:
显式的调用析构函数是一件非常危险的事情,,我们自己所谓的显式调用析构函数,实际上只是调用了一个成员函数,并没有真正意义上的让对象“析构”。为了理解这个问题,我们必须首先弄明白“堆区”和“栈区”的概念。《具体的区别参加我的文章-《堆区和栈区浅谈》》堆区(heap)——一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。栈区(stack)——由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。如果对象被建立在堆上,系统就不会自动调用。所以,如果我们在析构函数中有清除堆数据的语句,调用两次意味着第 阅读全文