1

假设我有以下课程:

   class foo{

   int array_allocation(int length){

          array= new int[length];
          return 0;

   }
   private:
      int *array;

   };

我应该在这里实现~foo(){ delete []array};还是隐式完成?

4

2 回答 2

4

都不是,你应该std::vector<int>改用。我什至不是作为你们班的成员说话,而是作为你们班的成员说话

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

于 2012-08-27T21:56:57.777 回答
1

指针不会自动删除。同样,当复制该类时,复制的是指针而不是内存。您应该遵守RAII设计模式和三原则

于 2012-08-27T22:42:55.957 回答