C ++ - это виртуальный деструктор, который все еще необходим, если в производных нет членов данных ?

Предположим, у меня есть этот код

class Base{
  public:
        int getVal();
  private:
         int a, b;
};

class Derived::public Base{
    public:
         void printVal();
};

int main(){
    Base *b = new Derived();
    delete b;    
}

Я знаю, что виртуальный деструктор удаляет все правильно, но плохо ли удалять с помощью базового указателя (когда нет виртуального деструктора) даже если в производном классе нет виртуальных функций и членов данных? Что будет, если это будет сделано?

12
задан j0k 1 July 2013 в 14:07
поделиться