基本クラスでオーバーロードoperator*(float s)
し (そして仮想化しない)、派生クラスでオーバーロードoperator*(mat4 m)
した場合、派生クラスが両方の演算子のオーバーロードに応答することを合理的に期待できますか?
演算子のオーバーロードは他の関数と同様であると仮定します。それが仮想ではなく、オーバーライドされていない場合、派生クラスは、派生クラスに固有のその関数/演算子の他のオーバーロードに加えて、それにアクセスできます。
もちろん、仮想ではなく派生クラスも定義されている場合、派生クラスがポインターoperator*(float s)
を介してアクセスされた場合にのみ効果的に呼び出されます。Derived*