Это может показаться глупым, но я хотел бы создать контейнер, в котором хранятся указатели любого типа, чтобы я мог хранить там каждый указатель, а затем легко удалять их позже. Я попытался:
vector<void*> v;
v.push_back(new Dog());
v.push_back(new Cat());
cout << v[0]; // prints mem address
cout << v[1]; // prints another mem address
cout << *v[0]; // compiler yells at me
Но, по-видимому, вы не можете разыменовывать пустые указатели. Есть ли способ создать общий контейнер указателей любого типа, не заставляя каждый отдельный класс расширять суперкласс под названием «Объект» или что-то в этом роде?