当对象不是动态创建时,虚拟方法是否静态绑定?
如果虚拟方法具有两全其美(需要时静态和动态绑定),那么拥有非虚拟方法的意义何在?在什么情况下,人们更喜欢使用它们而不是虚拟的?
为了更好地解释,我包含了一个简单的类层次结构。
基类:
Class Base
{
/*
Member data, constructors and destructors
*/
public:
void my_redefined_func();
virtual void my_overriden_func();
};
派生类:
Derived : public Base
{
/*
Member data, constructors and destructors
*/
public:
void my_redefined_func();
virtual void my_overriden_func() override;
};