Предположим, у меня есть этот код
class Base{
public:
int getVal();
private:
int a, b;
};
class Derived::public Base{
public:
void printVal();
};
int main(){
Base *b = new Derived();
delete b;
}
Я знаю, что виртуальный деструктор удаляет все правильно, но плохо ли удалять с помощью базового указателя (когда нет виртуального деструктора) даже если в производном классе нет виртуальных функций и членов данных? Что будет, если это будет сделано?