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 usingnamespace
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修飾的公有方法 二 過載 方法過載是指在乙個類中...