我正在创建一个模板化类,其中包含一个名为array
的变量,并允许用户更改此数组的大小。我想知道如何处理内存泄漏?
templated <class T>
class MyClass{
long *array;
MyClass(long min, long max);
void Add(long n);
}
MyClass<T>::MyClass(long min, long max){
array= new long[min];
}
void MyClass<T>::Add(long n){
delete [] array;
array = new long[n];
}
(是的,我知道矢量会更好,但我必须使用数组。)
这是否有效地将数组的大小更改为n
并解决内存泄漏问题?
答案 0 :(得分:0)
当你有一个动态分配内存的类时,你需要一个析构函数来释放它。在您的情况下,您的MyClass析构函数也需要delete[] array;