C++中的析构函数是否自动释放声明的指针变量的内存在类中?

C++中的析构函数是否自动释放声明的指针变量的内存在类中?,c++,memory-management,C++,Memory Management,假设我有一个下面的类: class foo{ int array_allocation(int length){ array= new int[length]; return 0; } private: int *array; }; 我应该在这里实现~foo{delete[]array};或者它隐式地完成了???两者都不是,您应该使用std::vector。我甚至不是作为你们班的一员,而是作为你们班的一员

假设我有一个下面的类:

   class foo{

   int array_allocation(int length){

          array= new int[length];
          return 0;

   }
   private:
      int *array;

   };
我应该在这里实现~foo{delete[]array};或者它隐式地完成了???

两者都不是,您应该使用std::vector。我甚至不是作为你们班的一员,而是作为你们班的一员

编辑:否,内存不会自动释放。您需要提供一个有意义的析构函数、复制构造函数和赋值运算符。

两者都不需要,您应该使用std::vector。我甚至不是作为你们班的一员,而是作为你们班的一员


编辑:否,内存不会自动释放。您需要提供有意义的析构函数、复制构造函数和赋值运算符。

指针不会自动删除。同样,当复制该类时,指针也不会复制到内存中。您应该遵守设计模式,指针不会自动删除。同样,当复制该类时,指针也不会复制到内存中。您应该遵守设计模式并使用std::vector,这样您就不必担心了。要响应神秘的链接,。您需要手动执行。但是除了编写一个析构函数,还需要做更多的工作,这是不够的。你需要运用三五法则。但是,当您需要多个值时,标准容器已经为您管理了内存。使用std::向量数组;是的……您可以使用std::vector而不是数组,但问题不是,最好使用什么,问题是关于对象的内存管理。如果OP分配了其他东西作为例子会怎么样?在我的一些成员函数中,我声明了依赖于计算大小的数组,因此我使用了新运算符。我可以简单地使用int-array[calculted_-size]声明?。由于我使用了新操作符,我应该在函数返回正确时释放内存?…我对数组比向量更感兴趣,因为它们更快,所以我想坚持使用arraysUse std::vector,您不必担心。要响应神秘的链接,。您需要手动执行。但是除了编写一个析构函数,还需要做更多的工作,这是不够的。你需要运用三五法则。但是,当您需要多个值时,标准容器已经为您管理了内存。使用std::向量数组;是的……您可以使用std::vector而不是数组,但问题不是,最好使用什么,问题是关于对象的内存管理。如果OP分配了其他东西作为例子会怎么样?在我的一些成员函数中,我声明了依赖于计算大小的数组,因此我使用了新运算符。我可以简单地使用int-array[calculted_-size]声明?。因为我使用了新操作符,所以我应该在函数返回正确的时候释放内存?…我对数组比向量更感兴趣,因为它们更快,所以我想坚持使用数组。虽然我完全理解并尊重您的答案,但问题是关于内存管理。这个问题与数组的使用没有直接关系,正如您正确地指出的,向量,以及在这方面,数组的内存管理。如果foo班分配了其他东西怎么办?@activwerx当我回答时,已经有一个答案涵盖了删除的部分,这就是我跳过它的原因。公平竞争!我只是想确定一下!:-虽然我完全理解并尊重你的回答,但问题是关于内存管理的。这个问题与数组的使用没有直接关系,正如您正确地指出的,向量,以及在这方面,数组的内存管理。如果foo班分配了其他东西怎么办?@activwerx当我回答时,已经有一个答案涵盖了删除的部分,这就是我跳过它的原因。公平竞争!我只是想确定一下!:-