Предположим, что у вас есть объект class Fool
.
class Fool
{
int a,b,c;
double* array ;
//...
~Fool()
{
// destroys the array..
delete[] array ;
}
};
Fool *fool = new Fool() ;
Теперь Я знаю, что вы не должны, но какой-то дурак называет деструктор на fool
в любом случае. fool->~Fool();
.
Означает ли это, что память fool
освобождена (т.е. a, b, c недопустимы), или это означает только то, что происходит дезаллокация в функции ~Fool()
(т.е. массив удаляется только?)
Итак, я думаю, мой вопрос в том, является ли деструктор просто другой функцией, вызываемой при вызове delete
на объект, или он делает больше?