0

如果我operator*(float s)在基类中重载(并且我没有将其设为虚拟),然后在派生类中重载operator*(mat4 m),我可以合理地期望派生类将响应两个运算符重载吗?

我假设运算符重载与任何其他函数一样:如果它不是虚拟的并且没有被覆盖,那么除了派生类独有的该函数/运算符的任何其他重载之外,派生类还可以访问它。

当然,如果它不是虚拟的,但也定义了 Derived 类operator*(float s),那么只有通过指针访问 Derived 才会有效地调用它Derived*,否则,即使在 Derived 类上也会调用基类版本,对吗?

4

1 回答 1

1

我假设运算符重载与任何其他函数一样:如果它不是虚拟的并且没有被覆盖,那么除了派生类独有的该函数/运算符的任何其他重载之外,派生类还可以访问它。

与普通成员函数一样,派生类中的重载会隐藏原始的,除非您使用using.

于 2013-06-07T16:00:00.780 回答