2017-09-13 23 views
-5

我的问题是为什么在运算符重载中包含一个包含类对象作为参数是强制性的,为什么有一个参数像这样?为什么其中一个参数是包含运算符重载的类型

+0

我没有找到正确的答案给我,这就是我发布的原因,如果任何人有答案,请张贴我的链接 –

+0

请包括一些代码,所以我们知道你在问什么。 – mjwills

回答

0

您正在为特定类/结构重载操作符,这意味着至少有一个操作数必须是相同类型 - 操作数由参数定义。

如果您想到如何使用重载操作符,尤其是使用诸如++之类的一元运算符,会更容易。显然,为了调用你的重载++,你必须将它应用到你重载它的类型的类中,否则编译器如何知道你打算调用你的重载操作符。

同样,使用二元运算符时,编译器需要知道重载运算符的定义位置。如果使用类B和C的参数在类A上重载+运算符,然后尝试将B的实例添加到C的实例,为什么编译器会认为您打算在A上使用重载运算符?如果B类和C类也有超载+运营商会怎么样?

相关问题