Доступ к объекту после вызова деструктораC++

Программы на C++. Форум разработчиков
Anonymous
 Доступ к объекту после вызова деструктора

Сообщение Anonymous »

В приведенном ниже коде я явно вызываю ~destructor(). Однако объект по-прежнему доступен. Как его удалить(заставить исчезнуть)?

Код: Выделить всё

class Queue {
public:
node* top = NULL;//points to the top of the queue
//methods:
void enqueue(int data);//adds a node to the queue
void dequeue();
//printing
void print();
//destructor
~Queue();
};
И деструктор:

Код: Выделить всё

Queue::~Queue() {
//The destructor deletes all items from HEAP
//Then sets the top to 0
while (top != NULL)
this->dequeue();//dequeue until there are NO more items
top = 0;
}
В Source.cpp:

Код: Выделить всё

Queue q;

q.enqueue(1);
q.enqueue(2);
q.enqueue(3);
q.enqueue(4);

q.dequeue();
q.dequeue();
q.print();

q.~Queue();
q.print();//Here I need to have an ERROR!

q.enqueue(7);//Here I need to have an ERROR!
q.print();//Here I need to have an ERROR!
Вывод:


4 3 7


Я ожидаю ошибку:


Идентификатор «q» не определен


Подробнее здесь: https://stackoverflow.com/questions/556 ... destructor

Вернуться в «C++»