Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 对象的析构函数是否释放用于创建对象的指针所指向的内存?_C++_Pointers_Destructor - Fatal编程技术网

C++ 对象的析构函数是否释放用于创建对象的指针所指向的内存?

C++ 对象的析构函数是否释放用于创建对象的指针所指向的内存?,c++,pointers,destructor,C++,Pointers,Destructor,obj的析构函数(例如,如果obj超出作用域)是否释放obj_ptr分配的内存?一般来说:否,因为obj是*obj_ptr的副本,而不是引用 但这取决于作业的内容。从技术上讲,它可以,但那将是非常奇怪的。在几乎所有情况下:没有 对象所在的内存分配有new,通过delete释放。对象不知道它是如何分配的。它可以在堆栈上,也可以通过new,在数组中,放置new,一个全局变量…,这取决于对象的构造函数和析构函数做什么。换句话说,显示更多代码。否。如果Object*obj=obj_ptr,则为真。否则,

obj的析构函数(例如,如果obj超出作用域)是否释放obj_ptr分配的内存?

一般来说:否,因为obj是*obj_ptr的副本,而不是引用

但这取决于作业的内容。

从技术上讲,它可以,但那将是非常奇怪的。在几乎所有情况下:没有


对象所在的内存分配有new,通过delete释放。对象不知道它是如何分配的。它可以在堆栈上,也可以通过new,在数组中,放置new,一个全局变量…

,这取决于对象的构造函数和析构函数做什么。换句话说,显示更多代码。否。如果Object*obj=obj_ptr,则为真。否则,它只是*obj_ptrs/assignment/construction的一个副本/
Object obj = *obj_ptr;