用“+”、“-”能够实现复数的加减运算吗?
答案是不可以的!!
实现复数加减运算的方法
——重载“+”、“-”运算符
——重载“+”、“-”运算符
运算符成员函数的设计
n重载为类成员函数。
<函数类型> operator
<运算符>(<参数表>)
{
<函数体;>
}
n重载为友元函数。
Friend
<函数类型> operator
<运算符>(<参数表>)
{
<函数体;>
}
n重载为类成员函数时
参数个数=原操作数个数-1 (后置++、--除外)
参数个数=原操作数个数-1 (后置++、--除外)
n重载为友元函数时
参数个数=原操作数个数,且至少应该有一个自定义类型的形参。
class Complex {
public:
Complex(double r = 0, double i = 0 )
{
this->r = r
;
this->i = i
;
}
Complex operator + (Complex c)
{
Complex complex ;
complex.i = this->i +
c.i ;
complex.r = this->r +
c.r ;
return complex ;
}
Complex operator - (Complex c)
{
Complex complex ;
complex.i = this->i -
c.i ;
complex.r = this->r -
c.r ;
return complex ;
}
void display() {
cout
<<"["<<
r
<<","<<
i
<<"]"<<
endl ;
}
private:
double r ;
double i ;
};
void main()
{
Complex
c1(1.1 , 2.2) ;
Complex
c2(2.2 , 3.3) ;
Complex c3 =
c1 - c2 ; //c1.operater-(c2)
c3.display()
;
}