c ,左移運算子的過載

2021-10-09 14:09:42 字數 1022 閱讀 7412

在c++中,提供了運算子過載的方式,來讓程式的可用性更強

這裡,介紹一下左移運算子"<

左移運算子的過載可以幫助我們更好的輸出自定義的資料型別,可以做到簡潔,在不浪費更多**行的情況下,使用函式,來輸出類中的成員屬性資料

這裡我們先建立乙個類

將成員屬性設定為私有,當然設定為公共型別也可以,設定私有型別是為了展示當類內成員是私有時,要使用友元左移運算子過載函式來完成對類內成員的輸出

class

person

private

:int m_a;

int m_b;

};

那麼,既然要輸出成員屬性,為什麼不把左移運算子過載函式寫在類內做成員函式呢,主要是因為若把左移運算子寫在類內就會出現異常情況

ostream &

operator

<<

(cout)

在呼叫物件時就會出現這樣的情況

例如建立乙個物件p

person p;
那麼就會出現

poperator

<<

(ostream& cout, person& p)

那麼其**現ostream是什麼,ostream是cout的資料型別,屬於標準輸出流,如果要完成左移運算子的過載,必須設定返回值為標準輸出流ostream

由於cout屬於輸出流ostream型別,所以返回值必須為ostream,加引用是為了確定全域性只能有乙個cout的物件

所以函式必須返回乙個cout《若不返回將無法進行cout《的鏈式程式設計,以及endl換行

剩餘**

void

test01()

intmain()

最後實現效果

這是左移運算子過載的使用和主要事項

C 左移運算子過載

通過cout 物件,列印出複數的實部和虛部,這樣一來,就需要過載cout類的位移 運算函式,但是我們並不能拿到cout原始碼,在visual studio我們看到的也僅僅是他的定義 若想訪問c1的私有屬性,則應當宣告為友元函式 通過定義可以看出cout類的返回值是ostream型別的變數out vo...

左移運算子過載

1.作用 可以輸出自定義資料型別,比如輸出乙個類物件。includeusing namespace std include 左移 運算子過載 class person private 加入利用成員函式過載左移運算子 p.operator cout 簡化版本 p void operator cout ...

C 中左移運算子的過載

1.不要濫用運算子過載,除非有需求 2.不能對內建的資料型別進行過載 3.對於自定義的資料型別,不可以直接用cout 輸出,需要過載左移運算子 4.如果利用成員函式過載,無法實現cout在左側,因此不用成員過載 5.利用全域性函式實現左移運算子過載 6如果想訪問類中私有的內容可以配合全域性友元函式實...