C--對c的補(bǔ)充...ppt_第1頁
C--對c的補(bǔ)充...ppt_第2頁
C--對c的補(bǔ)充...ppt_第3頁
C--對c的補(bǔ)充...ppt_第4頁
C--對c的補(bǔ)充...ppt_第5頁
已閱讀5頁,還剩78頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、C+對c的補(bǔ)充,主要內(nèi)容,2.5c+輸入輸出語句 3.4C串與string 3.6向量 3.7引用 5.6函數(shù)重載 6.1內(nèi)聯(lián)函數(shù),2.5c+輸入輸出,(1) 對系統(tǒng)指定的標(biāo)準(zhǔn)設(shè)備的輸入和輸出。即從鍵盤輸入數(shù)據(jù),輸出到顯示器屏幕。這種輸入輸出稱為標(biāo)準(zhǔn)的輸入輸出,簡稱標(biāo)準(zhǔn)I/O。 (2) 以外存磁盤文件為對象進(jìn)行輸入和輸出,即從磁盤文件輸入數(shù)據(jù),數(shù)據(jù)輸出到磁盤文件。以外存文件為對象的輸入輸出稱為文件的輸入輸出,簡稱文件I/O。 (3) 對內(nèi)存中指定的空間進(jìn)行輸入和輸出。通常指定一個字符數(shù)組作為存儲空間(實(shí)際上可以利用該空間存儲任何信息)。這種輸入和輸出稱為字符串輸入輸出,簡稱串I/O。,C+的輸

2、入輸出流,C+的輸入輸出流是指由若干字節(jié)組成的字節(jié)序列,這些字節(jié)中的數(shù)據(jù)按順序從一個對象傳送到另一對象。流表示了信息從源到目的端的流動。在輸入操作時,字節(jié)流從輸入設(shè)備(如鍵盤、磁盤)流向內(nèi)存,在輸出操作時,字節(jié)流從內(nèi)存流向輸出設(shè)備(如屏幕、打印機(jī)、磁盤等)。流中的內(nèi)容可以是ASCII字符、二進(jìn)制形式的數(shù)據(jù)、圖形圖像、數(shù)字音頻視頻或其他形式的信息。 實(shí)際上,在內(nèi)存中為每一個數(shù)據(jù)流開辟一個內(nèi)存緩沖區(qū),用來存放流中的數(shù)據(jù)。流是與內(nèi)存緩沖區(qū)相對應(yīng)的,或者說,緩沖區(qū)中的數(shù)據(jù)就是流。,在C+中,輸入輸出流被定義為類。C+的I/O庫中的類稱為流類(stream class)。用流類定義的對象稱為流對象。 c

3、out和cin并不是C+語言中提供的語句,它們是iostream類的對象,在未學(xué)習(xí)類和對象時,在不致引起誤解的前提下,為敘述方便,把它們稱為cout語句和cin語句。,C+編譯系統(tǒng)提供了用于輸入輸出的iostream類庫。iostream這個單詞是由3個部分組成的,即i-o-stream,意為輸入輸出流。在iostream類庫中包含許多用于輸入輸出的類。,與iostream類庫有關(guān)的頭文件,iostream包含了對輸入輸出流進(jìn)行操作所需的基本信息。 fstream用于用戶管理的文件的I/O操作。 strstream用于字符串流I/O。 stdiostream用于混合使用C和C+的I/O機(jī)制時。

4、 iomanip在使用格式化I/O時應(yīng)包含此頭文件。,標(biāo)準(zhǔn)輸出流,1. cout流對象 cout是console output的縮寫,意為在控制臺(終端顯示器)的輸出。 2. cerr流對象 cerr流對象是標(biāo)準(zhǔn)錯誤流。cerr流已被指定為與顯示器關(guān)聯(lián)。 3. clog流對象 clog流對象也是標(biāo)準(zhǔn)錯誤流,它是console log的縮寫。它的作用和cerr相同,都是在終端顯示器上顯示出錯信息。區(qū)別: cerr是不經(jīng)過緩沖區(qū),直接向顯示器上輸出有關(guān)信息,而clog中的信息存放在緩沖區(qū)中,緩沖區(qū)滿后或遇endl時向顯示器輸出。,Cout 格式:cout表達(dá)式表達(dá)式n,endl是輸出是的控制符,表

5、示換行 系統(tǒng)自動判別輸出項(xiàng)的數(shù)據(jù)類型 輸出數(shù)據(jù)時,不能只用一個插入運(yùn)算符“”輸出多個數(shù)據(jù)項(xiàng) 所有類型的數(shù)據(jù)在輸出時,數(shù)據(jù)間均無間隔,如需要,則需在數(shù)據(jù)間插入相應(yīng)的間隔符 輸出多個表達(dá)式的值時,可以寫成多個cout語句來實(shí)現(xiàn),例 用控制符控制輸出格式。 #include #include /不要忘記包含此頭文件 using namespace std; int main() int a; couta; coutdec:decaendl; /以十進(jìn)制形式輸出整數(shù) couthex:hexaendl; /以十六進(jìn)制形式輸出整數(shù)a coutoct:setbase(8)aendl; /以八進(jìn)制形式輸出整數(shù)

6、a char *pt=China; /pt指向字符串China coutsetw(10)ptendl; /指定域?qū)挒?0,輸出字符串 coutsetfill(*)setw(10)ptendl; /指定域?qū)?0,輸出字符串,空白處以*填充 double pi=22.0/7.0; /計(jì)算pi值 coutsetiosflags(ios:scientific)setprecision(8);/按指數(shù)形式輸出,8位小數(shù) coutpi=piendl; /輸出pi值 coutpi=setprecision(4)piendl; /改為4位小數(shù) coutpi=setiosflags(ios:fixed)pien

7、dl;/改為小數(shù)形式輸出 return 0; ,運(yùn)行結(jié)果如下: input a:34(輸入a的值) dec:34 (十進(jìn)制形式) hex:22 (十六進(jìn)制形式) oct:42 (八進(jìn)制形式) China (域?qū)挒?0) *China (域?qū)挒?0,空白處以*填充) pi=3.14285714e+00 (指數(shù)形式輸出,8位小數(shù)) pi=3.1429e+00 (指數(shù)形式輸出,4位小數(shù)) pi=3.143 (小數(shù)形式輸出,精度仍為4),標(biāo)準(zhǔn)輸入流,cin是istream類的對象,它從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)獲取數(shù)據(jù),程序中的變量通過流提取符“”從流中提取數(shù)據(jù)。,cin 格式:cin變量1變量n,1)輸入

8、任何數(shù)據(jù)時,空格符、制表符、回車符都作為輸入數(shù)據(jù)的間隔符 2)輸入數(shù)據(jù)時,變量時變量可以在同一個語句中,也可以分成多個語句 3)系統(tǒng)會根據(jù)變量的類型從輸入流中提取相應(yīng)長度的字節(jié) 4)還可以進(jìn)行字符串?dāng)?shù)據(jù)的輸入,#include using namespace std; void main(void) char ch1,ch2,ch3; int a,b; float x,y; cinch1ch2ch3; cinab; cinxy; coutch1ch2ch3endl; couta bendl; coutx y endl; return 0; ,文件流的輸入出操作與標(biāo)準(zhǔn)輸入出基本相同,只是需要以一

9、定方式打開和關(guān)閉 如,將文件a.in打開,逐行讀入字符,輸出到文件a.out: ifstream in(“a.in”); ofstream out(“a.out”); for(string s; getline(in, s); ) outsendl; 其中文件流讀入操作總是伴隨著狀態(tài)返回,判斷狀態(tài)就可以確定文件是否正常讀入,如getline(in,s)當(dāng)讀到文件尾時,便返回false,以使循環(huán)結(jié)束,3.4C串與string,C+提供了一種新的數(shù)據(jù)類型字符串類型(string類型),在使用方法上,它和char、int類型一樣,可以用來定義變量,這就是字符串變量用一個名字代表一個字符序列。 實(shí)際上

10、,string并不是C+語言本身具有的基本類型,它是在C+標(biāo)準(zhǔn)庫中聲明的一個字符串類,用這種類可以定義對象。每一個字符串變量都是string類的一個對象。,1. 定義字符串變量,和其他類型變量一樣,字符串變量必須先定義后使用,定義字符串變量要用類名string。如 string string1; /定義string1為字符串變量 string string2=China; /定義string2同時對其初始化 應(yīng)當(dāng)注意: 要使用string類的功能時,必須在本文件的開頭將C+標(biāo)準(zhǔn)庫中的string頭文件包含進(jìn)來,即應(yīng)加上 #include /注意頭文件名不是string.h,2. 對字符串變量的

11、賦值,在定義了字符串變量后,可以用賦值語句對它賦予一個字符串常量,如 string1=Canada; 既可以用字符串常量給字符串變量賦值,也可以用一個字符串變量給另一個字符串變量賦值。如 string2=string1; /假設(shè)string2和string1均已定義為字符串變量 不要求string2和string1長度相同,假如string2原來是China,string1原來是Canada,賦值后string2也變成Canada。在定義字符串變量時不需指定長度,長度隨其中的字符串長度而改變。,3. 字符串變量的輸入輸出,可以在輸入輸出語句中用字符串變量名,輸入輸出字符串,如 cin stri

12、ng1; /從鍵盤輸入一個字符串給字符串變量string1 cout string2; /將字符串string2輸出,4字符串變量的運(yùn)算,字符串復(fù)制用賦值號 字符串連接用加號 字符串比較直接用關(guān)系運(yùn)算符,3.6向量,向量與數(shù)組的共同特征是元素的排列在邏輯上是線性序列結(jié)構(gòu),可以用下標(biāo)進(jìn)行訪問 向量可以按需創(chuàng)建,拷貝創(chuàng)建,局部拷貝創(chuàng)建,異類拷貝和創(chuàng)建靈活的初始化 隨意擴(kuò)容和元素增減 可通過異常來進(jìn)行下標(biāo)溢出追蹤和處理可比較 等等,int n=10; int t5=1,2,3,4,5; vector a(n); /按需創(chuàng)建 vector b(10, 1); /元素賦全,靈活的初始化 vector c

13、(b); / 整體拷貝創(chuàng)建 vector f(t, t+5); /異類拷貝創(chuàng)建 vector d(b.begin(), b.begin()+3);/局部拷貝創(chuàng)建d為b的前個元素 a.assign(100); /動態(tài)擴(kuò)容至100個元素,向量常用操作 a.assign(b.begin(), b.begin()+3); / b的前3個元素賦給a a.assign(4,2);/ a向量含4個元素,全初始化為2 int x = a.back(); / a的最后一個元素賦給變量x a.clear(); / a向量清空(不再有元素) if(a.empty() cout”empty”; / a判空操作 int

14、 y = a.front(); / a的第一個元素賦給變量y,向量常用操作 a.pop_back(); / 刪除a的最后一個元素 a.push_back(5); / a最后插入一個元素,其值為5 a.resize(10); / a元素個數(shù)調(diào)至10。多刪少補(bǔ),其值隨機(jī) a.resize(10,2);/a元素個數(shù)調(diào)至10。多刪少補(bǔ),新添元素初值為2 if(a=b) cout”equal”; / a與b的向量比較操作,3.7引用,對變量起另外一個名字 (外號),這個名字稱為該變量的引用。 refmax并沒有重新在內(nèi)存中開辟單元,只是引用max的單元。max與refmax在內(nèi)存中占用同一地址,即同一地

15、址兩個名字。,int max ; int ,max,refmax,5,10,20,max與refmax同一地址,1、引用在定義的時候要初始化。 int 2、對引用的操作就是對被引用的變量的操作。,對引用類型的變量,說明以下幾點(diǎn):,錯誤,沒有具體的引用對象,max是已定義過的變量,3、 引用類型變量的初始化值不能是一個常數(shù)。 如:int 4、引用同變量一樣有地址,可以對其地址進(jìn)行操作,即將其地址賦給一指針。,int a, *p; int 指針與引用的區(qū)別: 1、指針是通過地址間接訪問某個變量,而引用是通過別名直接訪問某個變量。 2、引用必須初始化,而一旦被初始化后不得再作為其它變量的別名。,以下

16、的聲明是非法的 1、企圖建立數(shù)組的引用 int ,引用的用途主要是用來作函數(shù)的參數(shù)或函數(shù)的返回值。,void change(int ,const類型變量,當(dāng)用const限制說明標(biāo)識符時,表示所說明的數(shù)據(jù)類型為常量類型??煞譃閏onst型常量和const型指針。 可用const限制定義標(biāo)識符量,如: const int MaxLine =1000; const float Pi=3.1415926,用const定義的標(biāo)識符常量時,一定要對其初始化。在說明時進(jìn)行初始化是對這種常量置值的唯一方法 ,不能用賦值運(yùn)算符對這種常量進(jìn)行賦值。如: MaxLine =35;,const 型指針,1)禁寫指針

17、聲明語句格式為: 數(shù)據(jù)類型 * const 指針變量名 如:int r=6; int * const pr= 則指針pr被禁寫,即pr將始終指向一個地址,成為一個指針常量。它將不能再作為左值而放在賦值號的左邊。,void main(void) int a,b; int *const pa=/非法,pa為常量 ,2)禁寫間接引用 聲明語句格式如下: const 數(shù)據(jù)類型 *指針變量名; 所聲明的指針指向一禁寫的實(shí)體,即間接引用不能被改寫。如: const int *p; 所以程序中不能出現(xiàn)諸如 *p= 的語句,但指針p并未被禁寫,因而可對指針p進(jìn)行改寫。,void main(void) int

18、a=3,b=5; const int *pa= /輸出100 ,3)禁寫指針又禁寫間接引用 將上面兩種情況結(jié)合起來,聲明語句為下面的格式 const 數(shù)據(jù)類型 *const 指針變量名 如:const int *const px= /求3個整數(shù)中的最大者 double max2(double a,double b,double c); /求3個雙精度數(shù)中最大者 long max3(long a,long b,long c); /求3個長整數(shù)中的最大者 C+允許用同一函數(shù)名定義多個函數(shù),這些函數(shù)的參數(shù)個數(shù)和參數(shù)類型不同。這就是函數(shù)的重載。即對一個函數(shù)名重新賦予它新的含義,使一個函數(shù)名可以多用。,

19、例求3個數(shù)中最大的數(shù)(分別考慮整數(shù)、雙精度數(shù)、長整數(shù)的情況)。 #include using namespace std; int main( ) int max(int a,int b,int c); /函數(shù)聲明 double max(double a,double b,double c); long max(long a,long b,long c); int i1,i2,i3,i; cini1i2i3; /輸入3個整數(shù) i=max(i1,i2,i3); /求3個整數(shù)中的最大者 couti_max=iendl;,coutd1d2d3; /輸入3個雙精度數(shù) d=max(d1,d2,d3);

20、/求3個雙精度數(shù)中的最大者 coutg1g2g3; /輸入3個長整數(shù),g=max(g1,g2,g3); /求3個長整數(shù)中的最大者 couta) a=b; if(ca) a=c; return a; double max(double a,double b,double c) if(ba) a=b; if(ca) a=c; return a; long max(long a,long b,long c) if(ba) a=b; if(ca) a=c; return a;,運(yùn)行情況如下: 185 -76 567 (輸入3個整數(shù)) 56.87 90.23 -3214.78 (輸入3個實(shí)數(shù)) 6785

21、4 -912456 673456 (輸入3個長整數(shù)) i_max=567 (輸出3個整數(shù)的最大值) d_max=90.23 (輸出3個雙精度數(shù)的最大值) g_max=673456 (輸出3個長整數(shù)的最大值) 上例3個max函數(shù)的函數(shù)體是相同的,其實(shí)重載函數(shù)并不要求函數(shù)體相同。重載函數(shù)除了允許參數(shù)類型不同以外,還允許參數(shù)的個數(shù)不同。,例 編寫一個程序,用來求兩個整數(shù)或3個整數(shù)中的最大數(shù)。如果輸入兩個整數(shù),程序就輸出這兩個整數(shù)中的最大數(shù),如果輸入3個整數(shù),程序就輸出這3個整數(shù)中的最大數(shù)。,#include using namespace std; int main( ) int max(int a

22、,int b,int c); /函數(shù)聲明 int max(int a,int b); /函數(shù)聲明 int a=8,b=-12,c=27; couta) a=b;,if(ca) a=c; return a; int max(int a,int b) if(ab) return a; else return b; ,運(yùn)行情況如下: max(a,b,c)=27 max(a,b)=8 兩次調(diào)用max函數(shù)的參數(shù)個數(shù)不同,系統(tǒng)就根據(jù)參數(shù)的個數(shù)找到與之匹配的函數(shù)并調(diào)用它。 參數(shù)的個數(shù)和類型可以都不同。但不能只有函數(shù)的類型不同而參數(shù)的個數(shù)和類型相同。,int f(int); /函數(shù)返回值為整型 long f(

23、int); /函數(shù)返回值為長整型 void f(int); /函數(shù)無返回值 在函數(shù)調(diào)用時都是同一形式,如“f(10)”。編譯系統(tǒng)無法判別應(yīng)該調(diào)用哪一個函數(shù)。重載函數(shù)的參數(shù)個數(shù)、參數(shù)類型或參數(shù)順序3者中必須至少有一種不同,函數(shù)返回值類型可以相同也可以不同。 在使用重載函數(shù)時,同名函數(shù)的功能應(yīng)當(dāng)相同或相近,不要用同一函數(shù)名去實(shí)現(xiàn)完全不相干的功能,雖然程序也能運(yùn)行,但可讀性不好,使人莫名其妙。,有默認(rèn)參數(shù)的函數(shù),一般情況下,在函數(shù)調(diào)用時形參從實(shí)參那里取得值,因此實(shí)參的個數(shù)應(yīng)與形參相同。有時多次調(diào)用同一函數(shù)時用同樣的實(shí)參,C+提供簡單的處理辦法,給形參一個默認(rèn)值,這樣形參就不必一定要從實(shí)參取值了。如有

24、一函數(shù)聲明 float area(float r=6.5); 指定r的默認(rèn)值為6.5,如果在調(diào)用此函數(shù)時,確認(rèn)r的值為6.5,則可以不必給出實(shí)參的值, area( ); /相當(dāng)于area(6.5);,area(7.5); /形參得到的值為7.5,而不是6.5 如果有多個形參,可以使每個形參有一個默認(rèn)值,也可以只對一部分形參指定默認(rèn)值,另一部分形參不指定默認(rèn)值。如有一個求圓柱體體積的函數(shù),形參h代表圓柱體的高,r為圓柱體半徑。函數(shù)原型如下: float volume(float h,float r=12.5); /只對形參r指定默認(rèn)值12.5 函數(shù)調(diào)用可以采用以下形式: volume(45.6)

25、; /相當(dāng)于volume(45.6,12.5) volume(34.2,10.4) /h的值為34.2,r的值為10.4,默認(rèn)形參值的說明次序,默認(rèn)形參值必須從右向左順序聲明,并且在默認(rèn)形參值的右面不能有非默認(rèn)形參值的參數(shù)。因?yàn)檎{(diào)用時實(shí)參取代形參是從左向右的順序。 例: int add(int x,int y=5,int z=6); /正確 int add(int x=1,int y=5,int z); /錯誤 int add(int x=1,int y,int z=6); /錯誤,默認(rèn)形參值與函數(shù)的調(diào)用位置,調(diào)用出現(xiàn)在函數(shù)體實(shí)現(xiàn)之前時,默認(rèn)形參值必須在函數(shù)原形中給出;而當(dāng)調(diào)用出現(xiàn)在函數(shù)體實(shí)現(xiàn)

26、之后時,默認(rèn)形參值需在函數(shù)實(shí)現(xiàn)時給出。,int add(int x=5,int y=6); void main(void) add( ); /調(diào)用在實(shí)現(xiàn)前 int add(int x,int y) return x+y; ,int add(int x=5,int y=6) return x+y; void main(void) add(); /調(diào)用在實(shí)現(xiàn)后 ,默認(rèn)形參值的作用域,在相同的作用域內(nèi),默認(rèn)形參值的說明應(yīng)保持唯一,但如果在不同的作用域內(nèi),允許說明不同的默認(rèn)形參。 例: int add(int x=1,int y=2); void main(void) int add(int x=3,

27、int y=4); add(); /使用局部默認(rèn)形參值(實(shí)現(xiàn)3+4) void fun(void) . add(); /使用全局默認(rèn)形參值(實(shí)現(xiàn)1+2) ,例 求2個或3個正整數(shù)中的最大數(shù),用帶有默認(rèn)參數(shù)的函數(shù)實(shí)現(xiàn)。 #include using namespace std; int main( ) int max(int a, int b, int c=0); int a,b,c; cinabc; couta) a=b; if(ca) a=c; return a;,運(yùn)行情況如下: 14 -56 135 max(a,b,c)=135 max(a,b)=14,在使用帶有默認(rèn)參數(shù)的函數(shù)時有兩點(diǎn)要注

28、意: (1) 如果函數(shù)的定義在函數(shù)調(diào)用之前,則應(yīng)在函數(shù)定義中給出默認(rèn)值。如果函數(shù)的定義在函數(shù)調(diào)用之后,則在函數(shù)調(diào)用之前需要有函數(shù)聲明,此時必須在函數(shù)聲明中給出默認(rèn)值,在函數(shù)定義時可以不給出默認(rèn)值。 (2) 一個函數(shù)不能既作為重載函數(shù),又作為有默認(rèn)參數(shù)的函數(shù)。因?yàn)楫?dāng)調(diào)用函數(shù)時如果少寫一個參數(shù),系統(tǒng)無法判定是利用重載函數(shù)還是利用默認(rèn)參數(shù)的函數(shù),出現(xiàn)二義性,系統(tǒng)無法執(zhí)行。,內(nèi)置函數(shù),調(diào)用函數(shù)時需要一定的時間和空間的開銷。圖表示函數(shù)調(diào)用的過程: 圖4.5,C+提供一種提高效率的方法,即在編譯時將所調(diào)用函數(shù)的代碼直接嵌入到主調(diào)函數(shù)中,而不是將流程轉(zhuǎn)出去。這種嵌入到主調(diào)函數(shù)中的函數(shù)稱為內(nèi)置函數(shù)(inlin

29、e function),又稱內(nèi)嵌函數(shù)。在有些書中把它譯成內(nèi)聯(lián)函數(shù)。 指定內(nèi)置函數(shù)的方法很簡單,只需在函數(shù)首行的左端加一個關(guān)鍵字 inline即可。,例 函數(shù)指定為內(nèi)置函數(shù)。 #include using namespace std; inline int max(int,int, int); /聲明函數(shù),注意左端有inline int main( ) int i=10,j=20,k=30,m; m=max(i,j,k); couta) a=b; if(ca) a=c; return a;,由于在定義函數(shù)時指定它為內(nèi)置函數(shù),因此編譯系統(tǒng)在遇到函數(shù)調(diào)用“max(i,j,k)”時,就用max函數(shù)體的

30、代碼代替“max(i,j,k)”,同時將實(shí)參代替形參。這樣,程序第6行 “m=max(i,j,k);”就被置換成 if (ji) i=j; if(ki) i=k; m=i; 注意: 可以在聲明函數(shù)和定義函數(shù)時同時寫inline,也可以只在其中一處聲明inline,效果相同,都能按內(nèi)置函數(shù)處理。 使用內(nèi)置函數(shù)可以節(jié)省運(yùn)行時間,但卻增加了目標(biāo)程序的長度。,內(nèi)置函數(shù)中不能包括復(fù)雜的控制語句,如循環(huán)語句和switch語句。 應(yīng)當(dāng)說明: 對函數(shù)作inline聲明,只是程序設(shè)計(jì)者對編譯系統(tǒng)提出的一個建議,也就是說它是建議性的,而不是指令性的。并非一經(jīng)指定為inline,編譯系統(tǒng)就必須這樣做。編譯系統(tǒng)會根據(jù)

31、具體情況決定是否這樣做。 歸納起來,只有那些規(guī)模較小而又被頻繁調(diào)用的簡單函數(shù),才適合于聲明為 inline函數(shù)。,函數(shù)模板,C+提供了函數(shù)模板(function template)。所謂函數(shù)模板,實(shí)際上是建立一個通用函數(shù),其函數(shù)類型和形參類型不具體指定,用一個虛擬的類型來代表。這個通用函數(shù)就稱為函數(shù)模板。凡是函數(shù)體相同的函數(shù)都可以用這個模板來代替,不必定義多個函數(shù),只需在模板中定義一次即可。在調(diào)用函數(shù)時系統(tǒng)會根據(jù)實(shí)參的類型來取代模板中的虛擬類型,從而實(shí)現(xiàn)了不同函數(shù)的功能。看下面的例子就清楚了。,#include using namespace std; template /模板聲明,其中T為類型參數(shù) T max(T a,T b,T c) /定義一個通用函數(shù),用T作虛擬的類型名 if(ba) a=b; if(ca) a=c; return a;,int main( ) int i1=185,i2=-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論