Если у вас есть класс, который содержит член, который является указателем,
class Foo
{
Bar * mp_bar;
};
, то при уничтожении объекта Foo
ничего не происходит, кроме этого указателя вместе с содержащим его объектом,выходит за рамки.Это то же самое, что происходит с p
в конце следующей функции:
void bar()
{
int * p;
}
Возможно, вы хотели спросить о том, «что происходит с объектом, на который указывает указатель».Это совершенно другой вопрос, и ответ «ничего».
(Поэтому, обычно, когда у вас есть класс, содержащий член-указатель, вы должны тщательно продумать, кому принадлежат какие-либо ресурсы, которые, возможно, потребуется очистить.)
Поскольку вы упомянули слово «деструктор» в своем вопросе, давайте разберемся раз и навсегда:
Объект типа указателя не имеет деструктора.Когда указатель выходит из области видимости, нет автоматического вызова delete
.