c++私有继承中的基类析构函数为何不需要声明为虚函数呢?

2025-03-18 14:49:55
推荐回答(2个)
回答1:

析构函数使用virtual的前提是,当一个指向基类的指针,实际指向派生类的实例,这时销毁这个基类指针,可以调用派生类的析构函数。

但如果是私有派生,那就不能用指向基类的指针,来指着派生类的实例。换句话说,这个派生类必须用自己的名义销毁,所以不必将析构函数声明为虚函数。

回答2:

不管基类还是子类,virtual只要声明一次就可以了;
也就是说,如果基类里声明virtual了,子类就可以不声明了,当然再次声明也没问题,反之亦然;