Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 派生类中与基类不同的重载运算符_C++_Operator Overloading - Fatal编程技术网

C++ 派生类中与基类不同的重载运算符

C++ 派生类中与基类不同的重载运算符,c++,operator-overloading,C++,Operator Overloading,如果我在基类中重载operator*(float s),然后在派生类中重载operator*(mat4 m),我可以合理地预期派生类随后会对这两个操作符重载做出响应吗 我假设运算符重载与任何其他函数类似:如果它不是虚拟的且未被重写,则派生类除了该函数/运算符的任何其他重载(对于派生类而言是唯一的)之外,还可以访问它 当然,如果它不是虚拟的,但是派生类也定义了操作符*(float s),那么只有通过派生*指针访问派生类时,才会有效地调用它,否则,即使在派生类上也会调用基类版本,对吗 我假设运算符重

如果我在基类中重载
operator*(float s)
,然后在派生类中重载
operator*(mat4 m)
,我可以合理地预期派生类随后会对这两个操作符重载做出响应吗

我假设运算符重载与任何其他函数类似:如果它不是虚拟的且未被重写,则派生类除了该函数/运算符的任何其他重载(对于派生类而言是唯一的)之外,还可以访问它

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

我假设运算符重载与任何其他函数类似:如果它不是虚拟的且未被重写,则派生类除了该函数/运算符的任何其他重载(对于派生类而言是唯一的)之外,还可以访问它


与普通成员函数一样,除非您。

这很有趣;我一直认为,由于重载是一个具有不同参数的不同函数,那么它将被视为一个完全不同的函数,而不会干扰另一个重载