在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如果想訪問類中私有的內容可以配合全域性友元函式實...