オブジェクトが動的に作成されていない場合、仮想メソッドは静的にバインドされますか?
仮想メソッドが両方の長所を備えている場合 (必要に応じて静的バインディングと動的バインディング)、非仮想メソッドを使用する意味は何ですか? どのような場合に、仮想のものよりもそれらの使用を好むでしょうか?
より良い説明のために、単純なクラス階層を含めました。
基本クラス:
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;
};