ostream類過載的operator 函式

2022-04-07 00:09:44 字數 1205 閱讀 3460

ostream類過載了operator<<()以識別不同的型別,如:

int    short        long        unsigned int    unsigned short    unsigned long

float    double       long double     char         signed char     unsigned char

這樣cout就不用像c語言中的printf那樣需要程式設計師自行匹配資料型別,如:printf("%s%d%f","hello world",32,3.1415)

由於c++用指向字串位置的指標來表示字串,因此ostream類過載了char型指標型別的插入運算子<<,即:

ostream& operator<<(void*);

ostream& operator<<(const char*);

ostream& operator<<(const signed char*);

ostream& operator<<(const unsigned char*);

後三種形式分別接受3種char型常指標,輸出char型常指標指向的內容,直到遇到字串結束符'\0',如:

char *ch1="hello world"

char ch2[12]="hello world"

cout<

即會呼叫兩次ostream& operator<<(const char*)

int a=3;

cout<<&a<

就會呼叫ostream& operator<<(void*)來輸出a的位址。

由於字串是指向第乙個字元的指標,因此要獲取字串的位址,就需要將char*型指標強制轉換為void*,然後才能呼叫operator(void*)來

輸出字串位址,否則呼叫的則是operator(const char*),輸出的則是char型常指標指向的內容,如:

char *ch="hello world";

char s[12]="hello world";

cout<

cout<<(void*)ch<

cout<

cout<<(void*)s<

#include using

namespace

std;

intmain()

實現分數類的過載

程式頭部注釋開始 程式的版權和版本宣告部分 檔名稱 作 者 苗影 完成日期 2012 年 4 月 10 日 版 本 號 對任務及求解方法的描述部分 輸入描述 問題描述 程式輸出 程式頭部的注釋結束 includeusing namespace std class cfraction void sim...

過載BodyTagSupport類的方法點滴

編寫標籤對應的實現類時,需要過載bodytagsupport類幾個方法 dostarttag setbodycontent doinitbody doafterbody doendtag dostarttag doinitbody setbodycontent doafterbody doendta...

類的封裝和過載

一 類的封裝是指將物件的狀態資訊隱藏在物件內部,不允許外部程式直接訪問物件的內部資訊,通過該類所提供的方法來實現對內部資訊的操作訪問。使用private關鍵字來修飾,私有屬性只能在他所在類中被訪問 如果外界想要訪問私有屬性,需要提供一些使用public修飾的公有方法 二 過載 方法過載是指在乙個類中...