У меня есть класс, который хранит указатель на объекты других классов как void *, но у меня возникли проблемы с деструктором.
Я знаю, что ошибка сегмента от этого деструктора, потому что, когда я добавляю (к первой строке)
shapeObject = nullptr;
кажется, что оно исчезло, но я не хочу, чтобы произошла утечка памяти.
~ShapeElem() {
if (shapeType == AClass)
delete static_cast<AClass* >(shapeObject);
else if (shapeType == BClass)
delete static_cast<BClass* >(shapeObject);
shapeObject = nullptr;
}
Итак, что я могу сделать для удаления этого пустого указателя shapeObject.
Примечание. Поскольку это домашнее задание, я не могу использовать шаблоны для работы с разными классами
Я должен использовать void *.