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