—****** 1******—
<< 運算符的重載
C++ 在輸出內容時,最常用的方式:
std::cout << 1 <<"hello";
提出問題:
那這條語句為什么能成立呢?
cout 是什么?為什么 << 運算符能用在 cout 上呢?
原因:
實際上,cout 是在 iostream 頭文件中定義的 ostream 類的對象。
<< 能夠用在 cout 上是因為,在 ostream 類對 << 進行了重載。
對于如下這條語句:
std::cout << 1 <<"hello";
有可能按以下的方式重載成 ostream 類的成員函數(shù):
ostream & ostream::operator<<(int n)
那么在使用流插入<<運算符時,等價于的形式如下:
01 數(shù)據(jù)類型是int類型時:
std::cout << 1;
上面的語句,等價于:
cout.operator<<(1);
02 數(shù)據(jù)類型是字符串類型時:
std::cout << "hello";
上面的語句,等價于:
cout.operator<<("hello");
03 數(shù)據(jù)類型組合使用時:
std::cout << 1 <<"hello";
上面的語句,等價于:
( cout.operator<<(1) ).operator<<("hello");
— —
假定我們要想把某個對象里的內容進行打印輸出,那么我們可以重載 ostream 類的流插入 << 運算符。
下面以 CStudent 類作為例子:
image
輸出結果:
1,20,小林coding
需要注意:
ostream & operator<<(ostream & o, const CStudent & s)
函數(shù)是全局的,所以函數(shù)的第一個參數(shù)必須要傳入 ostream 的對象,并且 CStudent 類需要將此函數(shù)聲明成友元函數(shù),使得函數(shù)可以訪問 CStudent 類的私有成員變量。
—****** 2******—
>> 運算符的重載
還是以 CStudent 類作為例子,假設想通過鍵盤的輸入的內容,來初始化對象,則我們可以重載 istream 類的流提取 >> 運算符。
image
輸入內容和輸出內容:
// 輸入內容:
其實做為一個學習者,有一個學習的氛圍跟一個交流圈子特別重要這里我推薦一個C/C++基礎交流583650410,不管你是小白還是轉行人士歡迎入駐,大家一起交流成長。

