用兩種方式分別實現一元操作符:前置++,前置--,後置++,後置--
過載為友元函式,解釋為:operator op(object) 引數由參數列的object 提供。
過載為成員函式,解釋為:object.operator op()。
#include
using namespace std;
class complex
complex(int a,int b)
//前置--成員函式
complex operator--()
//後置--成員函式
complex operator--(int)
void cprint()
complex(int a,int b) };
ostream& operator<<(ostream &out,complex &c1)
{ cout<
<<"+"<
<<"i"<
流操作符《和》,常常希望被連續使用,例如:cout << "hello" << endl; 因此這兩個操作符的返回值應該是乙個仍然支援這兩個操作符的流引用。cout << "hello" 的返回值仍然是個流引用。
可選的其它方案包括:返回乙個流物件和返回乙個流物件指標
。但是對於返回乙個流物件,程式必須重新(拷貝)構造乙個新的流物件,也就是說,連續的兩個《操作符實際上是針對不同物件的!這無法讓人接受。
對於返回乙個流指標
則不能連續使用《操作符。因此,返回乙個流物件引用是惟一選擇。
C 過載運算子學習筆記
基本知識不贅述,這裡格外說幾點 int main 例如有 2 個運算元 a 和 b,二元運算子 表示乙個二元運算子 a b 的操作會被解釋為下面2種形式之一 a b a.operator b 類的非靜態成員函式 operator a,b 友元函式 或 普通函式輸入 輸出運算子過載時一般都用友元函式,...
C 過載運算子
運算子過載是一種形式的c 多型。在c 中,編譯器有能力把乙個由資料 物件和操作符共同組成的表示式,解釋為對乙個全域性或成員函式的呼叫。該全域性或成員函式被稱為操作符函式,通過重定義操作符函式,可以實現針對自定義型別 結構,類 的運算法則,並使之與內建型別一樣參與各種表示式。過載運算子可使 看起來更加...
C 過載運算子
本文主要講述加號運算子 自增運算子 流提取運算子運 流插入運算子 先給出vector類 class vector 建構函式 vector const vector v 拷貝建構函式 vector operator const vector v 過載 vector operator 過載前置自增運算子...