c++ Деструкторы
Если я допустим выделил память в конструкторе класса для массива, можно ли без деструктора её потом освободить вне конструктора ?
class Myclass
{
public:
int* data;
Myclass(int size)
{
data = new int[size];
cout << data << "конструктор вызвался";
for (int i=0;i<size;i++)
{
data[i]=i;
}
}
};
Ответы (1 шт):
Автор решения: Teivaz
→ Ссылка
Да, можно. Конструктор в данном случае ни к чему не обязывает. Член data всего лишь указатель.
class Myclass {
public:
int* data;
Myclass(int size) {
data = new int[size];
cout << data << "конструктор вызвался";
for (int i=0;i<size;i++) {
data[i] = i;
}
}
};
int main() {
Myclass obj;
delete[] obj.data;
obj.data = nullptr;
}