C 複數類運算子過載

2021-08-16 19:50:14 字數 1770 閱讀 1732

實現運算子過載有兩種形式:過載為成員函式、過載為友元函式。

#includeusing namespace std;

class complex

complex(double r,double i)

complex(const complex& rhs)

//complex& operator+(const complex& rhs);//過載為成員函式

friend complex operator+(complex& lhs,complex &rhs);//過載為友元函式

//complex& operator-(const complex& rhs);

friend complex operator-(complex& lhs,complex &rhs);

//complex& operator*(const complex& rhs);

friend complex operator*(complex& lhs,complex &rhs);

//complex& operator/(const complex& rhs);

friend complex operator/(complex& lhs,complex &rhs);

void show()

complex(double r,double i)

complex(const complex& rhs)

complex& operator+=(const complex& rhs);

friend complex operator+(complex& lhs,complex &rhs);

complex& operator-=(const complex& rhs);

friend complex operator-(complex& lhs,complex &rhs);

complex& operator*=(const complex& rhs);

friend complex operator*(complex& lhs,complex &rhs);

complex& operator/=(const complex& rhs);

friend complex operator/(complex& lhs,complex &rhs);

void show()

else

return in;

}

輸出運算子過載第乙個形參是對ostream物件的引用,在該物件上將產生輸出。該形參是引用,因為不能複製ostream物件。

第二個引數一般是對要輸出的類型別的引用。輸出不應該改變物件的值,所以加const。使形參為const引用還有乙個好處就是可以使用同乙個定義來輸出const和非const物件。

返回ostream的引用,它通常是輸出操作符所操作的ostream物件。

i/o操作符過載函式必須為非成員函式。如果定義為成員函式,左運算元只能是該型別的物件。使用時如下:complexc;c << cout;這個用法與為其他型別定義的輸出操作符的正常使用方式相反。左運算元必須為ostream型別,這意味著如果該操作符是類的成員,它必須是ostream類的成員,然而,ostream類是標準庫的組成部分,不能為標準庫中的類增加成員。所以i/o操作符過載要寫成非成員函式。通常對非公有資料成員進行讀寫,因此類通常將io操作設為友元。

與輸出操作符類似,輸入操作符的第乙個形參是乙個引用,指向它要讀的流,並返回的也是對同乙個流的引用。第二個形參必須為非引用,因為輸入一定會改變該物件。輸入和輸出不同的是:輸入操作符必須處理錯誤和檔案結束的可能性。

C 運算子過載,複數類

複數類 ccomplex c 的運算子過載 使物件的運算表現的和編譯器內建型別一樣。include using namespace std class ccomplex ccomplex operator const ccomplex src void show 運算子的過載 operator 前置...

運算子過載 複數類

1.普通運算子可以過載 2.型別過載1 防止實參被修改 2 接收隱式生成臨時物件 類內是this call的呼叫約定,成員方法隱藏this指標,指向一般為左運算元,所以只用傳右運算元即可 如下 class ccomplex 構造類內實現 的過載 右運算元型別為intconst ccomplex op...

複數類運算子過載

includeusing namespace std class complex complex operator complex co 過載 號,實現複數相加 complex operator complex co 過載 號,實現複數相減 complex operator complex co 過...