0

基本クラスでオーバーロードoperator*(float s)し (そして仮想化しない)、派生クラスでオーバーロードoperator*(mat4 m)した場合、派生クラスが両方の演算子のオーバーロードに応答することを合理的に期待できますか?

演算子のオーバーロードは他の関数と同様であると仮定します。それが仮想ではなく、オーバーライドされていない場合、派生クラスは、派生クラスに固有のその関数/演算子の他のオーバーロードに加えて、それにアクセスできます。

もちろん、仮想ではなく派生クラスも定義されている場合、派生クラスがポインターoperator*(float s)を介してアクセスされた場合にのみ効果的に呼び出されます。Derived*

4

1 に答える 1

1

演算子のオーバーロードは他の関数と同様であると仮定します。それが仮想ではなく、オーバーライドされていない場合、派生クラスは、派生クラスに固有のその関数/演算子の他のオーバーロードに加えて、それにアクセスできます。

通常のメンバー関数と同様に、派生クラスのオーバーロードは、 を使用しない限り、元のusing隠します。

于 2013-06-07T16:00:00.780 に答える