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是在+号两端智能的代入了参数? 展开
复数相加:
第一种。
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是在+号两端智能的代入了参数? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询