живот на променлива, създадена чрез динамично заделена памет
Здравейте,
Защо като се излезе от скоуба, да се изтрива copy, нали сме го заделили динамично с ctor-a? Заделена с new памет не живее ли докато решим да я освободим? (примерът е от класа Array)
Array(size_t size) : data(new T[size]), size(size) {}
Array<T>& operator=(const Array<T>& other) {
Array<T> copy(other);
delete[] this->data;
this->data = copy.data;
this->size = copy.size;
return *this;
}
Примерно, ползваме функции за заделяне на динамична и масивът не се изтрива автоматично при излизане от скоуба:
int* allocateMem(int size) {
return new int[size];
}
Поздрави!