cout是ostream類的物件,cin是istream類的物件。
我們平時用的cout《就相當於cout.operator<<(...)。也就是說正常使用(不對operator《進行函式過載,我們用的都是ostream類庫中本身定義好了函式)
而當我們需要對cout《進行過載時,比如我們定義了乙個類student,他的乙個物件s1,我們想要cout
ostream& operator<<(ostream& co,const student& s) {
co《關於這個函式,有兩點值得思考:
(1)它的返回值,是這樣理解的:
cout<<5<<"hello";
在我們輸出了乙個5以後返回的是呼叫第乙個《的物件的引用,即相當於第乙個cout,我們就可以接著連續的用同乙個cout來呼叫第二個《函式了。
(2)引數中引用的s物件,以及在函式體中直接呼叫s.sname,是需要我們把該函式設定成student類的友元類的,這樣該函式就相當於student類的成員函式,可以直接訪問到student類的成員變數。
C 運算子過載 輸入 輸出運算子
為了與io標準庫一致,過載輸入輸出運算子函式的第乙個行參應該是流的引用,第二個行參是物件的引用。如果過載為類的成員函式,第乙個行參應該是物件的引用,第二個行參是流的引用。使用方式是 classobj cout 這樣與標準io庫就不一致了,所以輸入輸出運算子不能過載為類的成員函式,可以過載為類的友元函...
C 運算子過載 輸入 輸出運算子
為了與io標準庫一致,過載輸入輸出運算子函式的第乙個行參應該是流的引用,第二個行參是物件的引用。如果過載為類的成員函式,第乙個行參應該是物件的引用,第二個行參是流的引用。使用方式是 classobj cout 這樣與標準io庫就不一致了,所以輸入輸出運算子不能過載為類的成員函式,可以過載為類的友元函...
關於過載流輸入輸出運算子
盡可能簡潔清晰的向同我一樣的小白們寫範例以便於理解。以下為單獨的流輸出過載 include include using namespace std class t 建構函式,並賦初始值 private double aa double bb ostream operator ostream outp...