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;
}
→ Ссылка