5:06:48 实现 友元函数 //成员函数 Byte:: Byte(int bb) Integer:: Integer(int ii) [b=bb; 1 [i=ii void Byte: showo void Integer:: showO [ cout < b << end1 [ cout < i < end1; 1 Byte operator+( Integer Integer: operator+O const byte& bt) freturn *this; 1 return bt Integer Integer: operator-o( Byte operator-( Integer temp(i) const byte bt)i return temp: Byte temp(-bt b return temp
15:06:48 实现 //成员函数 Integer::Integer(int ii) { i=ii;} void Integer::show() { cout << i << endl;} Integer Integer::operator+() {return *this;} Integer Integer::operator-(){ Integer temp(-i); return temp; } //友元函数 Byte::Byte(int bb) { b=bb;} void Byte::show() { cout << b << endl;} Byte operator+( const Byte & bt) {return bt;} Byte operator-( const Byte & bt){ Byte temp(-bt.b); return temp; }
15:06:48 元运算符重载的特例:++ ++与一有前置与后置(即先++、先一和后++、后-)两种形式 为了区别这两种形式,重载时对应的函数形式有所不同 例: Integer类 成员函数:以+为例 Integer Integer: operator /+0 + class Integer return *this. int 1 public Integer Integer: operator++(int) Integer operator++0;( Integer operator++Kint): Integer temp this return temp Integer intObj(10) ++intob j 前置形式 后置形式 intob j++
15:06:48 一元运算符重载的特例:++ 、-- ➢++与--有前置与后置(即先++、先--和后++、后--)两种形式 ➢为了区别这两种形式,重载时对应的函数形式有所不同 例:Integer类 .成员函数:以++为例 class Integer{ int i; public: Integer operator++(); Integer operator++(int); }; Integer Integer::operator ++(){ i++; return *this; } Integer Integer::operator++(int) { Integer temp = *this; i++; return temp; } 前置形式 后置形式 Integer intObj(10); ++intObj; intObj++;
友元函数 15:06:48 class Byte int b public friend Byte operator++(Byte& bt) friend By te operator++(B bt. int) Byte operator++ byte bt bt b++. 前置形式 return bt. Byte operator+t byte bt, int) Byte temp=bt; bt b++ 后置形式 return tem p Byte btobirO) ++btob btob++
15:06:48 .友元函数 class Byte{ int b; public: friend Byte operator++(Byte & bt); friend Byte operator++(Byte & bt,int); }; Byte operator++(Byte & bt){ bt.b++; return bt; } Byte operator++(Byte & bt,int){ Byte temp=bt; bt.b++; return temp; } Byte btObj(10); ++btObj; btObj++; 前置形式 后置形式
5:06:48 二元运算符的重载 二元运算本身需要两个操作数 有些二元运算符既可重载成成元函数,也可重载成友元函数 成员函数:形式上需要一个形参,此形参做为右操作数, 左操作数为this指针指向的对象 友元函数:形式上需要两个形参,分别代表左操作数和右 操作数
15:06:48 二元运算符的重载 ➢二元运算本身需要两个操作数 ➢有些二元运算符既可重载成成元函数,也可重载成友元函数 ➢成员函数:形式上需要一个形参,此形参做为右操作数, 左操作数为this指针指向的对象 ➢友元函数:形式上需要两个形参,分别代表左操作数和右 操作数