通過過載輸入和輸出運算子實現複數的輸入和輸出

2021-06-22 11:50:23 字數 1320 閱讀 5796

程式**:

#include using namespace std;

class complex

//使用初始化表初始化複數

complex(double r, double i):real(r),imag(i){}

complex operator+(complex &c2);//複數的加法

complex operator-(complex &c2);//複數的減法

complex operator*(complex &c2);//複數的乘法

complex operator/(complex &c2);//複數的除法

//過載《運算子實現輸出複數

friend ostream& operator <

//過載》運算子實現輸入複數

friend istream& operator >>(istream& input, complex& c);

private:

double real;//複數的實部

double imag;//複數的虛部

};//複數的加法

complex complex::operator+(complex &c2)

//複數的減法

complex complex::operator-(complex &c2)

//複數的乘法

complex complex::operator*(complex &c2)

//複數的除法

complex complex::operator/(complex &c2)

//過載》運算子實現輸入複數

istream& operator >>(istream& input, complex& c)

while(!(('+' == sign || '-' == sign) && 'i' == i));

c.real = a;

c.imag = ('+' == sign) ? b : -b;

return input;

}//過載《運算子實現輸出複數

ostream& operator <

{ int num = c.imag;

if(num>0)

{output<>c1;

cout<

cin>>c2;

//列印第乙個複數

cout<

cout<

執行結果:

輸入和輸出運算子過載

過載輸出運算子 通常情況下,輸出運算子的第乙個形參是乙個非常量 ostream 物件的引用。之所以 ostream 是非常量是因為向流寫入內容會改變其狀態 而該形參是引用是因為我們無法直接複製乙個 ostream 物件。第二個形參一般來說是乙個常量的引用,該常量是我們想要列印的類型別。為了與其他輸出...

輸入運算子和輸出運算子的過載

操作符的過載有一些規則 1.過載操作符必須具有乙個類型別或列舉型別運算元。這條規則強制過載操作符不能重新定義用於內建型別物件的操作符的含義。如 int operator int,int 不可以 2.為類設計過載操作符的時候,必須選擇是將操作符設定為類成員還是普通非成員函式。在某些情況下,程式沒有選擇...

過載輸入輸出運算子

我們平時可以用流 std cout str n 輸出 輸入字串和整型等內建型別的值。但是對於我們自定義的類,比如 student 類,卻不能直接通過 cout student 這樣的形式來輸出類的內容或給類賦值。怎麼辦呢?我們可以通過過載輸出 輸入運算子,讓自定義的類也支援這樣的操作。通常情況下,輸...