析构函数使用virtual的前提是,当一个指向基类的指针,实际指向派生类的实例,这时销毁这个基类指针,可以调用派生类的析构函数。 但如果是私有派生,那就不能用指向基类的指针,来指着派生类的实例。换句话说,这个派生类必须用自己的名义销毁,所以不必将析构函数声明为虚函数。
不管基类还是子类,virtual只要声明一次就可以了;也就是说,如果基类里声明virtual了,子类就可以不声明了,当然再次声明也没问题,反之亦然;