对象的析构函数是否释放用于创建对象的指针指向的内存?
Does the destructor of an object free the memory pointed by the pointer used to create object?
Object obj = *obj_ptr;
obj的析构函数,例如如果 obj 超出范围,释放 obj_ptr?
分配的内存
总的来说:不,因为 obj
是 *obj_ptr
的副本,而不是参考。
但这取决于作业的作用。
从技术上讲,可以,但那会非常奇怪。在几乎所有情况下:没有。
您的对象所在的内存由 new
分配,由 delete
释放。对象不知道它是如何分配的。它可以在堆栈上,可以通过 new
,在数组中,放置新的,全局变量...
Object obj = *obj_ptr;
obj的析构函数,例如如果 obj 超出范围,释放 obj_ptr?
分配的内存总的来说:不,因为 obj
是 *obj_ptr
的副本,而不是参考。
但这取决于作业的作用。
从技术上讲,可以,但那会非常奇怪。在几乎所有情况下:没有。
您的对象所在的内存由 new
分配,由 delete
释放。对象不知道它是如何分配的。它可以在堆栈上,可以通过 new
,在数组中,放置新的,全局变量...