C ++运算符重载 - uni测验答案看起来不对?

时间:2013-11-01 23:24:12

标签: c++ overloading operator-keyword non-member-functions

screenshot

大家好

今年我们的单身男子组合中出现了一些错误,我只是在考试前通过测验进行修订,附图显示了“无法作为非成员操作员超载实施的正确答案。” p>

发布在这里可能无法及时从uni论坛获得答案。我误解了什么,或者下面的答案是错误的?

谢谢:)

2 个答案:

答案 0 :(得分:1)

非成员函数运算符必须包含两个参数。所有选项都有两个参数而不是最后一个,所以d就是答案。如果它是作为成员函数或具有名称的常规函数​​,它将被编译。

答案 1 :(得分:1)

像<{1}}这样的二元运算符总是需要2个参数才能工作。但是,成员函数获取operator >作为第一个参数。非成员当然没有 this,这就是签名必须接受两个参数的原因。

所以“d”对于你上面的“多重猜测”问题是正确的。