特定の基本クラスのサブクラスプログラマーに(コンパイル時の強制なしで)何かをするように依頼することは、C ++の良い習慣と見なされますか?例えば...
このクラスの正しいサブクラスは、次のことを行う必要があります。
オーバーライドされた仮想関数bar()への各呼び出しの最後に保護変数m_fooを正しく入力します-上記のコメントを参照してください(このSOの質問には表示されていないいくつかのc ++コメント)
これらの条件が満たされている場合:[いくつかの条件]次に、オーバーライドされた仮想関数bar()の各呼び出しの最後に、この基本クラスに実装されている非仮想関数baz()を呼び出します。これは、すべてのサブクラスに共通するはずのロジックを実行するためです。
サブクラスに対するこのような命令は許容できると見なされますか、それともコンパイル時の強制ではないという事実は、コード設計に欠陥があることを示していますか?