c++运算符重载参数的个数问题。

我在网上搜到了两个资料,在程序中也都试验过了,有些疑惑。复数相加:第一种。Complexoperator+(Complexcom1,Complexcom2)//运算符重载... 我在网上搜到了两个资料,在程序中也都试验过了,有些疑惑。
复数相加:
第一种。
Complex operator+(Complex com1,Complex com2)//运算符重载函数
{
return Complex(com1.real+com2.real,com1.imag+com2.imag);
}

第二种:
Complex Complex::operator+(Complex &c2)
{
Complex c;
c.real=real+c2.real;
c.imag=imag+c2.imag;
return c;
}

这两种参数个数都不同。
为什么
c3=c1+c2 最后的结果都是一样?
是编译器自动识别了第一种?如果是当做一个函数的话。 那么第一种的 c1+c2是在+号两端智能的代入了参数?
展开
 我来答
wuiiao333
2015-06-11 · TA获得超过799个赞
知道小有建树答主
回答量:666
采纳率:0%
帮助的人:209万
展开全部
第一个是友元函数,不需要类对象调用。
第二种为类的函数,需要类对象调用

第一种:
c3=operator+(c1,c2);
第二种
c3=c1.operator+(c2);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式