Я пытаюсь сделать вывод о создании и удалении объекта в определенном порядке. Используя конструкторы-деструкторы, по умолчанию сначала создается первый объект и т. Д., А деструктор начинает удаление с последнего созданного объекта. Я пытаюсь изменить порядок вывода что-то похожее на это:
Object 1 is created, we've got 1 object(s) now!
Object 2 is created, we've got 2 object(s) now!
Object 3 is created, we've got 3 object(s) now!
Object 3 is deleted, we've got 2 object(s) now!
Object 2 is deleted, we've got 1 object(s) now!
Object 4 is created, we've got 2 object(s) now!
Object 4 is deleted, we've got 1 object(s) now!
Object 1 is deleted, we've got 0 object(s) now!
код:
class Object {
public:
Object(int i) {
id = i;
count++;
cout<<"Object "<<id<<" is created, we've got "<<count<<" object(s) now!"<<endl;
}
~Object() {
count--;
cout<<"Object "<<id<<" is deleted, we've got "<<count<<" object(s) now!"<<endl;
}
private:
int id;
static int count;
};
Для этого я обнаружил, что могу использовать указатели, указывающие на созданный объект, и удалять , чтобы при желании мы могли контролировать порядок создания и удаления.
#include"Object.h"
extern void TestObjects()
{
Object *a;
Object obj1(1),obj2(2),obj3(3);
a = &obj3;
delete a;
Object *c;
c = &obj2;
delete c;
}
До сих пор он только создает 3 объекта и удаляет третий сразу после создания, и я пытаюсь удалить второй сразу после удаления третьего.