У меня есть класс внутри класса, вложенного классУдаляет ли указатель объекта основного класса удаление вложенных указателей классов?
class A {
public:
int a;
int b;
class B {
int c;
int d;
}
}
В процессе, я выделяю указатель на объект класса В в куче.
B *bobj = new B();
A *a;
auto_ptr<A> A1(new A());
a = A1.release();
ли удаление а, удалить bobj
, а ??
delete a;
или мы должны явно удалить указатель подкласс?
Это код, который не был написан мной, я поставил журналы на все alloc и deallocs, и я вижу, что B *bobj = new B()
, для этого нет удаления, а для объекта A ptr существует удаление. И все же утечки памяти нет. Вот почему я получил сомнение в том, что происходит в этом сценарии.
«В процессе ..» какой процесс? Что означает «A * a»? – juanchopanza
@nvoigt это даже не нарушение прав доступа, это ошибка компилятора. – juanchopanza
Я боюсь, что все, что вы говорите, ошибочно: вы не выделяете указатель на кучу, а скорее * объект *. Указатель - это автоматическая переменная. И слово «подкласс», ужасное, как есть, действительно не означает, что вы думаете. Во всяком случае, у вас есть «вложенный класс». –