我有一个关于删除对象和指向它们的指针的问题。第一次测试:
a test;
a* test_ptr;
test_ptr = &test;
test.aPrint();
test_ptr->aPrint();
delete(test_ptr);
test.aPrint();
我在构造函数、析构函数和函数中添加了打印输出,aPrint 打印文本“aPrint”(ob)。
constructor
aPrint
aPrint
destructor
aPrint
destructor
如何两次调用析构函数?删除后如何仍然使用对象测试?
- - -编辑 - - -
所以如果我用 new 代替。然后我必须使用删除,否则我会泄漏。
a* test_ptr;
test_ptr = new a;
test_ptr->aPrint();
delete(test_ptr);
这是因为这个例子使用了堆,而第一个例子使用了栈吗?