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

时间:2012-08-27 21:51:08

标签: c++ memory-management

假设我有以下类:

   class foo{

   int array_allocation(int length){

          array= new int[length];
          return 0;

   }
   private:
      int *array;

   };

我应该在这里实现~foo(){ delete []array};或其隐含的实现?

2 个答案:

答案 0 :(得分:4)

两者都不应该使用std::vector<int>。我甚至不是作为你班上的成员说话,而是而不是你班级的

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

答案 1 :(得分:1)

指针不会自动删除。此外,当复制该类时,指针被复制而不是内存。您应该遵守RAII设计模式和the rule of three