Например, скажем, у вас есть:
Class Test
{
public:
Test();
private:
int x = 0;
int y = 3;
}
Вы объявляете экземпляр теста, используя что-то вроде
Test * RRR = new Test();
Скажите где-нибудь вниз по линии, которую вы вводите
delete RRR;
Означает ли это также, что память x и y занята?
короткий ответ - да, но, строго говоря, x и y не удаляются. Память, которую они будут освобождены, потому что они являются членами данных структуры.
Даже вы не определяете деструктор, компилятор будет синтезировать деструктор по умолчанию для вас, который освободит память, которую занимает структура.
RRR
, память для него будет стерта, несмотря на наличие деструктора или нет.