Если DerivedClass1 и DerivedClass2 являются классами, производными от BaseClass, где BaseClass является полиморфным классом, какой из этих двух фрагментов кода является правильным?
BaseClass *ptr;
ptr = new DerivedClass1;
ptr->PrintName();
ptr = new DerivedClass2;
ptr->PrintName();
delete ptr;
или
BaseClass *ptr;
ptr = new DerivedClass1;
ptr->PrintName();
delete ptr;
ptr = new DerivedClass2;
ptr->PrintName();
delete ptr;
Многократное использование «new» перед использованием «delete» просто переопределяет значение ptr, или это вызывает какую-то утечку памяти? Извините, если это глупый вопрос, но я не могу найти ответ на него.