【发布时间】:2014-02-27 23:04:50
【问题描述】:
假设我有一个Complex 数字类,operator+ 被重载了两次,既作为成员函数又作为全局函数,例如:
class Complex {
public:
Complex operator+(const Complex& c);
};
Complex operator+(const Complex& a, const Complex& b);
在主函数中,我将调用 operator+,如下所示:
Complex a, b;
Complex c = a + b;
将调用哪个operator+ 函数?谢谢!
【问题讨论】:
-
Operator overloading的可能重复
-
@KevinDTimm 抱歉,我已经修改了帖子以显示我实际做了什么,这段代码可以正常编译
-
运算符重载是一个定义明确的过程,在互联网上的 1000 个地方(其中一个链接在上面)中得到了回答。您的问题不是一个新问题,因此您应该使用现有资源,而不是通过再次提出相同的问题来增加噪音。
-
@KevinDTimm:我看不出另一个问题在哪里描述了当同时有成员和非成员候选人时将选择哪个候选人。我也无法理解标准的相关部分,所以我有兴趣看到这个问题的答案。
-
@KevinDTimm 我实际上已经在网上进行了一些搜索,但没有找到我所遇到的确切问题的答案..