cout >> 其中的cou 是outstream 類的乙個物件 ,而 >> 是這個類的運算子過載,
嗯,我們已經基本上看出了cout的實質,不妨動動手,自己來實現乙個cout的簡化版(lite),為了區分,我們把我們設計的cout物件命名的myout,myout物件所屬的類為myoutstream。我們要做的就是為myoutstream類
過載一系列不同型別的operator《運算子函式,簡單起見,這裡我們僅實現了對
整型(int)與字串型(char*)的過載。為了表示與iostream斷絕關係,我們不再用標頭檔案iostream,而使用古老的stdio中的printf函式進行輸出,程式很簡單,包括完整的
main函式,均列如下:
#include//在c和一些古老的c++中是
stdio.h,新標準為了使標準庫
//的標頭檔案與使用者標頭檔案區別開,均推薦使用不用副檔名
//的版本,對於原有c庫,不用副檔名時頭檔名前面要加c
class myoutstream
;const myoutstream& myoutstream::operator<<(int value)const
const myoutstream& myoutstream::operator<<(char*str)const
myoutstream myout;//隨時隨地為我們服務的全域性物件myout
int main()
我們定義的myout已經初具形態,可以為我們工作了。程式中的注釋指出兩處要我們特別注意的:即是operator《函式執行完畢之後,總是返回乙個它本身的引用,輸出已經完成,為何還要多此一舉?
還記得那個有點奇異的cout.operator<<("hello,world!").operator<<(endl)麼?它能實現意味著我們可以連著書寫
cout<<"hello,world!"《而不是
cout<<"hello,world!";
cout<
iostream.h 與iostream
iostream 是標準c++的標頭檔案,它引入了命名空間的概念,為了與以前的c標頭檔案有區別,採用了不以.h 結尾的標頭檔案方式,iostream.h 是以前的標頭檔案方式
而使用include 這是c++為了相容c的標頭檔案方式 ,實際與string.h 是一樣的 而則是c++的string 類
C 的一些知識
1.c 中非虛函式都是靜態繫結,虛函式是動態繫結。指標或引用訪問物件的虛函式時才能進行動態繫結。靜態多型性 編譯時確定操作的物件。如 函式過載,運算子過載。動態多型性 執行時確定操作的物件。繫結 函式實現與函式名進行繫結。2.有虛函式的類,虛表存放虛函式的位址。3.例項化空類,所佔記憶體的大小為1....
c 的一些知識一
1.指標和引用的區別 1指標一般指的是某塊記憶體的位址,通過這個位址,我們可以定址到這塊記憶體 而引用是乙個變數的別名,2指標可以為空,即不指向任何東西 但是引用不能為空。3指標可以多次賦值,引用只能在初始化的時候就賦好值,之後就不能改變了。4引用的建立和銷毀不會呼叫類的拷貝建構函式和析構函式。2....
C 一些初步知識
函式的過載 c 允許在同一作用域中用同乙個函式名定義多個函式,這些函式的引數個數和引數型別不同,這些同名的函式用來實現不同的功能,這就是函式的過載,即乙個函式名多用。例 int max int a,int b,int c float max float a,float b,float c long ...