クラスBに仮想関数foo()があり、Bの派生クラスの1つであるクラスDでわずかに異なる動作が必要であるとします。オーバーライド関数D :: foo()を作成し、B :: foo( )そこから、特別な場合の治療の後?このような:
void D::foo()
{
if (/*something*/)
// do something
else
B::foo();
}
私はそれがうまくいくかどうか尋ねていません、私はそれがうまくいくことを知っています。良いOODの観点からそれが正しいかどうか知りたいです。