10.3运算符重载的语法 ◆两种形式: 1、重载为类的成员函数 函数类型 operator运算符(形参表) 函数体; 2、重载为类的友元函数 friend函数类型 operator运算符(形参表) 函数体; 2005-4-28 北京邮电大学电信工程学院计算机技术中心
2005-4-28 北京邮电大学电信工程学院计算机技术中心 -11- 10.3 运算符重载的语法 两种形式: 1、重载为类的成员函数 函数类型 operator 运算符(形参表) { 函数体; } 2、重载为类的友元函数 friend 函数类型 operator 运算符(形参表) { 函数体; }
1、重载为类的成员函数 ◆1、一元运算符 十、 ◆2、二元运算符 *、/、%、=、 下面我们以复数 Complex类为例,实现运 算符的重载 2005-4-28 北京邮电大学电信工程学院计算机技术中心
2005-4-28 北京邮电大学电信工程学院计算机技术中心 -12- 1、重载为类的成员函数 1、一元运算符 ++、--等 2、二元运算符 +、-、*、/、% 、=、+=、-= 下面我们以复数Complex类为例,实现运 算符的重载
class complex public complex(double real=0, double imag=0 r(real), i(imag complex operator +(complex&) complex operator-(complex&) complex operator +=(complex&) void printo cout<<setiosflags(ios: showpos) <<r<<""<<i<<1<<endl rivate doubler. i
class complex { public: complex(double real=0,double imag=0): r(real),i(imag){} complex operator +(complex&); complex operator -(complex&); complex operator +=(complex&); void print() { cout<<setiosflags(ios::showpos) <<r<<" "<<i<<'i'<<endl; } private: double r , i; };
complexcomplex:: operator +(complex& c) return complex(r+c r, i+c i complexcomplex: operator -(complex& c) return complex(r-c. r, i-C. 1) complexcomplex: operator +=(complex& c) r+=cr 1+=c.1 return *this 返回自己本身
complex complex::operator +(complex& c) { return complex(r+c.r,i+c.i); } complex complex::operator -(complex& c) { return complex(r-c.r,i-c.i); } complex complex::operator +=(complex& c) { r+=c.r; i+=c.i; return *this; } 返回自己本身
void maino complex cl(l, 1)c2(3, 3), c3 c3=cI+c2 ∥复数相加 c3 printo c3=c1-c2 ∥复数相减 C3. print Ito c3+=c2+=cl; ∥复数相加后赋值 c3 printo +4+4i 2-2 +2+2i
void main() { complex c1(1,1),c2(3,3),c3; c3=c1+c2; //复数相加 c3.print(); c3=c1-c2; //复数相减 c3.print(); c3+=c2+=c1; //复数相加后赋值 c3.print(); } +4 +4i - 2 - 2 i +2 +2i