103运算符重载的语法 ◆两种形式: 1、重载为类的成员函数 函数类型 operator运算符(形参表) 函数体; 2、重载为类的友元函数 fend函数类型 operator运算符(形参表) 函数体; 2021/2/24 北京邮电大学电信工程学院计算机技术中
2021/2/24 北京邮电大学电信工程学院计算机技术中心 -11- 10.3 运算符重载的语法 两种形式: 1、重载为类的成员函数 函数类型 operator 运算符(形参表) { 函数体; } 2、重载为类的友元函数 friend 函数类型 operator 运算符(形参表) { 函数体; }
1、重载为类的成员函数 ◆1、一元运算符 + 等 ◆2、二元运算符 0 + 下面我们以复数 Complex类为例,实现运算 符的重载。 2021/2/24 北京邮电大学电信工程学院计算机技术中 12
2021/2/24 北京邮电大学电信工程学院计算机技术中心 -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 print( cout<<setiosflags(iosshowpos <<r<<""<<<<<end orivate double r. 1
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; };
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. 1) complex complex: operator +-(complex& c) r+=c r: 1+=C.I 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 main( complex cl(l, 1),c2(3,3),c3 c3=c1+c2 复数相加 c3 printo c3=c1-c2 ∥复数相减 c3 printo; c3+=c2+=cl; 复数相加后赋值 c3. printo; +4+41 -2-2i +2+21
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 -2i +2 +2i