C+程序設(shè)計(jì)語言揣錦華第2章函數(shù).ppt
《C+程序設(shè)計(jì)語言揣錦華第2章函數(shù).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《C+程序設(shè)計(jì)語言揣錦華第2章函數(shù).ppt(97頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第2章 函 數(shù),2.1 函數(shù)的定義與使用 2.2 函數(shù)調(diào)用機(jī)制 2.3 遞歸函數(shù) 2.4 默認(rèn)參數(shù)的函數(shù) 2.5 內(nèi)聯(lián)函數(shù) 2.6 函數(shù)重載 2.7 函數(shù)模板 2.8 使用C++系統(tǒng)函數(shù),2.1 函數(shù)的定義與使用,在編輯一個(gè)大型程序時(shí),即使各個(gè)函數(shù)的前后順序不同,程序執(zhí)行的開始點(diǎn)永遠(yuǎn)是主函數(shù)。主函數(shù)按照調(diào)用與被調(diào)用關(guān)系調(diào)用子函數(shù)。子函數(shù)如果與其它子函數(shù)又存在調(diào)用與被調(diào)用關(guān)系,當(dāng)然還可以再調(diào)用其它子函數(shù)。,在一對(duì)調(diào)用與被調(diào)用關(guān)系中,我們把調(diào)用其它函數(shù)的函數(shù)稱為主調(diào)函數(shù),被其它函數(shù)調(diào)用的函數(shù)稱為被調(diào)函數(shù)。在一個(gè)較為復(fù)雜的大型程序中,一個(gè)函數(shù)很可能同時(shí)扮演兩種不同的角色主調(diào)函數(shù)與被調(diào)函數(shù),即既調(diào)用別
2、的函數(shù)(被調(diào)函數(shù))又被另外的函數(shù)(主調(diào)函數(shù))調(diào)用。函數(shù)一般應(yīng)遵守先定義后調(diào)用的原則,否則應(yīng)在調(diào)用函數(shù)中先進(jìn)行原形說明。,2.1.1 函數(shù)的定義 一個(gè)完整的函數(shù)定義由兩部分組成,即函數(shù)頭與函數(shù)體。 1. 函數(shù)定義的一般語法形式 (形式參數(shù)表) 說明性語句序列; 實(shí)現(xiàn)函數(shù)功能的語句系列; ,函數(shù)頭是指上述格式中的 (形式參數(shù)表)。其中函數(shù)名可由函數(shù)設(shè)計(jì)者命名,可以是任何一個(gè)不重復(fù)的合法的標(biāo)識(shí)符(唯一的例外是,主函數(shù)必須命名為main)。 函數(shù)體是指上述格式中被一對(duì)大括號(hào)括起的復(fù)合語句部分。該函數(shù)所應(yīng)實(shí)現(xiàn)的功能由相應(yīng)的復(fù)合語句完成。,2. 函數(shù)的類型和返回值 函數(shù)頭部分的類型標(biāo)識(shí)符規(guī)定
3、了函數(shù)的返回值類型。函數(shù)的返回值是返回給主調(diào)函數(shù)的處理結(jié)果,由函數(shù)體部分的return語句帶回。例如,return value1。 無返回值的函數(shù)其類型標(biāo)識(shí)符為void,不必有return語句。,3. 形式參數(shù) 函數(shù)頭部分的形式參數(shù)(簡稱形參)表的內(nèi)容如下:類型l 形參名1,類型2 形參名2,...,類型n 形參名n其中類型1、類型2、...、類型n是類型標(biāo)識(shí)符,表示形參的數(shù)據(jù)類型(int、double、float、char、bool等);形參名1、形參名2、...、形參名n是形參名(合法的自定義標(biāo)識(shí)符)。形參是用來實(shí)現(xiàn)主調(diào)函數(shù)與被調(diào)函數(shù)之間的數(shù)據(jù)聯(lián)系,通常將函數(shù)所處理的數(shù)據(jù)、影響函
4、數(shù)功能的因素或者函數(shù)處理的結(jié)果作為形參。對(duì)于無形參的函數(shù),其形參表的內(nèi)容應(yīng)該為空,但代表函數(shù)的小括號(hào)對(duì)不能省略。,函數(shù)在沒有被調(diào)用的時(shí)候其形參只是一個(gè)符號(hào),它標(biāo)志著在形參出現(xiàn)的位置應(yīng)該有一個(gè)什么類型的數(shù)據(jù)。函數(shù)在被調(diào)用時(shí)才由主調(diào)函數(shù)將實(shí)際參數(shù)(簡稱實(shí)參)賦予形參。從這一點(diǎn)上說,C++中的函數(shù)與數(shù)學(xué)中的函數(shù)概念極其相似。例如,我們都熟悉的如下數(shù)學(xué)中的函數(shù)形式: f(x)=3x2+5x-2 這個(gè)函數(shù)只有當(dāng)自變量x被賦以確定的值以后,才能計(jì)算出函數(shù)的值。,2.1.2 函數(shù)的調(diào)用 如果沒有遵守先定義后調(diào)用的原則,調(diào)用函數(shù)之前先要在主調(diào)函數(shù)中聲明函數(shù)原型。在主調(diào)函數(shù)中,或所有
5、函數(shù)之前,按如下形式進(jìn)行函數(shù)原型聲明: (含類型說明的形參表);,如果是在所有函數(shù)之前聲明了函數(shù)原型,那么該函數(shù)原型在本程序文件中任何地方都有效,也就是說,在本程序文件中任何地方都可以依照該原型調(diào)用相應(yīng)的函數(shù)。如果是在某個(gè)主調(diào)函數(shù)內(nèi)部聲明了被調(diào)函數(shù)原型,那么該原型就只能在這個(gè)函數(shù)內(nèi)部有效。 聲明了函數(shù)原型之后,便可以按如下形式調(diào)用子函數(shù): (實(shí)參1,實(shí)參2,,實(shí)參n),實(shí)參列表中應(yīng)給出與函數(shù)原型中形參個(gè)數(shù)相同、類型相符的實(shí)參,每個(gè)實(shí)參都可以是常量、變量或表達(dá)式三者之一。實(shí)參與實(shí)參之間用逗號(hào)作為分隔符。注意,這里的逗號(hào)不是順序求值運(yùn)算符。函數(shù)調(diào)用可以作為一條語句,這時(shí)函數(shù)可以沒
6、有返回值。函數(shù)調(diào)用也可以出現(xiàn)在表達(dá)式中,這時(shí)就必須有一個(gè)明確的返回值。函數(shù)調(diào)用示例如下。,【例2-1】 編寫一個(gè)函數(shù),把華氏溫度轉(zhuǎn)換為攝氏溫度,公式為C=(F-32)*5/9,公式中F代表華氏溫度,C代表攝氏溫度。在主函數(shù)中提示用戶輸入一個(gè)華氏溫度,并完成輸入及輸出,由函數(shù)完成轉(zhuǎn)化功能。 程序代碼如下: #include float hstoss(float fHuashi);//原型說明 void main( ) ,float fHuashi; coutfHuashi; cout<<華氏< 7、uashi)<<度< 8、 < 9、數(shù),只要將二進(jìn)制數(shù)的每一位乘以該位的權(quán),然后相加。例如,110100112=1(27)1(26)0(25)1(24)0(23)0(22)1(21)l(20)=21110,所以,如果輸入00001101,則應(yīng)輸出13。,可以直接引用例2-2中的函數(shù)power來求2的各次方。 程序代碼如下: #include double power(double dDishu,int iMi);//函數(shù)原型說明 void main( ) int iCount=8; int iValue=0; char cChar; bool bFlag=true;,cout0) cincChar; if(cChar!=1,iC 10、ount--; if(bFlag) cout<<十進(jìn)制值為:< 11、進(jìn)制數(shù):110lao11 這不是一個(gè)二進(jìn)制數(shù)! 不能正確轉(zhuǎn)換,【例2-4】 編寫一個(gè)函數(shù)可用來判斷任給的一個(gè)正整數(shù)是否為素?cái)?shù)(或質(zhì)數(shù))。再編寫主程序完成輸入、調(diào)用和輸出。素?cái)?shù)是指只能被1和它自身整除的數(shù)。 分析:素?cái)?shù)的逆定義就是,一但某數(shù)n能被2、3、...、n-1中的任何一個(gè)數(shù)除盡(只要除法中有一次余數(shù)為零),則n肯定不是一個(gè)素?cái)?shù);某數(shù)n若依次除以2、3、...、n-1,結(jié)果都除不盡(有余數(shù)),則n肯定是一個(gè)素?cái)?shù)。,程序代碼如下: #include int iIsprime(int iNum); void main( ) int iNum; coutiNum; if(iIspri 12、me(iNum)==1) cout< 13、正整數(shù):119 119不是一個(gè)素?cái)?shù),2.1.3 函數(shù)的參數(shù)傳遞 函數(shù)的參數(shù)用于在調(diào)用函數(shù)與被調(diào)用函數(shù)之間進(jìn)行數(shù)據(jù)傳遞。在函數(shù)定義時(shí),函數(shù)名后面括號(hào)內(nèi)的參數(shù)稱為形式參數(shù)(簡稱形參)。在函數(shù)被調(diào)用時(shí),函數(shù)名后面括號(hào)內(nèi)的參數(shù)稱為實(shí)際參數(shù)(簡稱實(shí)參)。,當(dāng)函數(shù)未被調(diào)用時(shí),C++編譯系統(tǒng)并沒有給函數(shù)的形參分配相應(yīng)的內(nèi)存空間,函數(shù)的形參更不會(huì)有實(shí)際的值。只有在函數(shù)被調(diào)用時(shí),C++編譯系統(tǒng)這時(shí)才為形參分配實(shí)際的存儲(chǔ)單元,并將實(shí)參與形參結(jié)合。實(shí)參可以是常量、變量或表達(dá)式,其類型必須與形參相符。函數(shù)的參數(shù)傳遞,指的就是形參與實(shí)參結(jié)合(簡稱形實(shí)結(jié)合)的過程。形實(shí)結(jié)合的方式有值調(diào)用和引用調(diào)用兩種。,1. 值調(diào) 14、用 值調(diào)用是指當(dāng)發(fā)生函數(shù)調(diào)用時(shí),編譯系統(tǒng)為形參分配相應(yīng)的存儲(chǔ)空間并且直接將實(shí)參的值復(fù)制給形參,這樣形參和實(shí)參就各自擁有不同的存儲(chǔ)單元,且形參是實(shí)參的副本。因此,值調(diào)用過程是參數(shù)值的單向傳遞過程,一旦形參獲得了與實(shí)參相同的值就與實(shí)參脫離關(guān)系,以后不論形參發(fā)生多大的改變,都決不會(huì)反過來影響到實(shí)參。前面2.1.2節(jié)中的四道例題均屬于值調(diào)用方式。,【例2-5】 從鍵盤輸入兩個(gè)整數(shù),交換位置后輸出(交換未成功)。 #include void swap(int a,int b); void main( ) int x,y; x=5; y=10; cout< 15、swap(x,y); //交換x,y的值,cout< 16、參y中的值10傳遞給虛參b;在swap函數(shù)中,a、b中的值完成互換;返回主函數(shù)時(shí),實(shí)參x、y中的值不受虛參a、b的影響,并未進(jìn)行交換。,2. 引用調(diào)用 顯而易見,值調(diào)用時(shí)參數(shù)的傳遞方式是實(shí)參單向復(fù)制其值給虛參,如果我們想使子函數(shù)中對(duì)形參所做的任何更改也能及時(shí)反映給主函數(shù)中的實(shí)參(即希望形參與實(shí)參的影響是互相的或稱是雙向的),又該怎么辦呢?這就需要改變調(diào)用方式,即采用第二種參數(shù)傳遞方式引用調(diào)用。 引用是一種特殊類型的變量,可以被認(rèn)為是某一個(gè)變量的別名。通過引用名與通過被引用的變量名訪問變量的效果是一樣的。這就是說,對(duì)形參的任何操作也就直接作用于實(shí)參。,例如: int a,b; 17、 int 注意: 聲明一個(gè)引用時(shí),必須同時(shí)對(duì)它進(jìn)行初始化,使它與一個(gè)已存在的對(duì)象關(guān)聯(lián)。, 一旦一個(gè)引用被初始化后,就不能改變關(guān)聯(lián)對(duì)象。換言之,一個(gè)引用從它被聲明之后,就必須確定是哪個(gè)變量的別名,而且自始至終只能作為這一個(gè)變量的別名,不能另作他用。 形參也可以引用的方式出現(xiàn)在形參表中。引用作為形參的情況與變量的引用稍有不同。這是因?yàn)?,形參的初始化不在類型說明時(shí)進(jìn)行,而是在執(zhí)行主調(diào)函數(shù)中的調(diào)用語句時(shí),才為形參分配內(nèi)存空間,同時(shí)用實(shí)參來初始化形參。,【例2-6】 使用引用調(diào)用改寫例2-5的程序,使兩實(shí)參中的數(shù)真正進(jìn)行互換。 #include void swap(int , void 18、 swap(int 程序運(yùn)行結(jié)果為 x=5 y=10 after swap x=10 y=5,分析:子函數(shù)swap的兩個(gè)參數(shù)都是引用,當(dāng)被調(diào)用時(shí),它們分別被初始化成為a和b的別名。因此,在子函數(shù)swap中將兩個(gè)參數(shù)的值進(jìn)行交換后,交換結(jié)果可以返回主函數(shù)main。,2.2 函數(shù)調(diào)用機(jī)制,一個(gè)C++的源程序經(jīng)過編譯以后形成與源程序主名相同但后綴為.exe的可執(zhí)行文件,且存放在外存儲(chǔ)器中。當(dāng)該 .exe的可執(zhí)行程序被運(yùn)行時(shí),首先從外存將程序代碼裝載到內(nèi)存的代碼區(qū),然后從main函數(shù)的起始處開始執(zhí)行。程序在執(zhí)行過程中,如果遇到了對(duì)其它函數(shù)的調(diào)用,則暫停當(dāng)前函數(shù)的執(zhí)行,,保存下一條指令的地址(即返回地址 19、,作為從子函數(shù)返回后繼續(xù)執(zhí)行的入口點(diǎn)),并保存現(xiàn)場(chǎng)(主要是一些寄存器的內(nèi)容),然后轉(zhuǎn)到子函數(shù)的入口地址,執(zhí)行子函數(shù)。當(dāng)遇到return語句或者子函數(shù)結(jié)束時(shí),則恢復(fù)先前保存的現(xiàn)場(chǎng),并從先前保存的返回地址開始繼續(xù)執(zhí)行。圖2-1說明了函數(shù)調(diào)用和返回的過程,圖中標(biāo)號(hào)標(biāo)明了執(zhí)行順序。,圖2-1 函數(shù)調(diào)用和返回的示意圖,【例2-7】 求 設(shè)N=10,X=2、4、6、8,即求N事件中每次取2、4、6、8的組合數(shù)。 分析:這個(gè)問題需要反復(fù)利用兩個(gè)公式: N! N!/X!/(N-X)! 設(shè)計(jì)兩個(gè)函數(shù):一個(gè)求整數(shù)階乘的函數(shù)lJiecheng和一個(gè)求組合數(shù)的函數(shù)lComb。由主函數(shù)m 20、ain調(diào)用lComb,lComb又調(diào)用lJiecheng。,程序代碼如下: #include long lJiecheng(int n) long rt=1; int i; for(i=1;i<=n;i++) rt=rt*i; return rt; long lComb(int N,int X), return lJiecheng(N)/lJiecheng(X)/lJiecheng(N-X); void main( ) long lJiecheng(int n); long lComb(int N,int X); int iNum,x; do ,coutiNum; while(iNum<10) 21、; for(x=2;x<10;x+=2) cout< 22、... ,所謂間接調(diào)用自身,就是一個(gè)函數(shù)func1調(diào)用另一個(gè)函數(shù)func2,而函數(shù)func2中又調(diào)用了函數(shù)func1,于是構(gòu)成間接遞歸。下面的例子屬于間接調(diào)用情況。 void func1(void) ... func2( ); //func1調(diào)用func2 ... void func2(void) ,... func1( ); //func2調(diào)用func1 ... func1函數(shù)就是通過func2實(shí)現(xiàn)間接遞歸。 遞歸算法的實(shí)質(zhì)是將原有的問題分解為新的問題,而解決新問題時(shí)又用到了原有問題的解法。按照這 23、一原則分解下去,每次出現(xiàn)的新問題都是原有問題的簡化的子集,而最終分解出來的問題,是一個(gè)已知解的問題。這便是有限的遞歸調(diào)用。,【例2-8】編寫函數(shù),用遞歸的方法求n!的值。在主程序中實(shí)現(xiàn)任意輸入n值并輸出計(jì)算結(jié)果。 分析:計(jì)算n!的公式如下。 1(n=0) n!= n(n-1)! (n0) 這是一個(gè)遞歸形式的公式,在描述階乘算法時(shí),又用到了階乘,只不過求階乘的數(shù)在逐次減1,因而編程時(shí)也自然采用遞歸算法。遞歸的結(jié)束條件是n=0。,程序代碼如下: #include long jc(int n) long rt; if(n<0) cout<
24、dl; else if(n==0) rt=1;//遞歸的結(jié)束條件 else rt=n*jc(n-1);//以參數(shù)減1的方式繼續(xù)遞歸 return rt;, void main( ) long jc(int n); int n; long result; do coutn; while(n<=0);,result=jc(n);//首次調(diào)用處 cout< 25、第4個(gè)人多少歲,他說比第5個(gè)人大2歲。最后問第5個(gè)人,他說是12歲。請(qǐng)問第1個(gè)人多少歲? 分析:這是一個(gè)遞歸問題。每一個(gè)人的年齡都比其后那個(gè)人的年齡大2,即,age(1)=age(2)+2 age(2)=age(3)+2 age(3)=age(4)+2 age(4)=age(5)+2 age(5)=12 可以用公式表示如下: 12(n=5) age(n)= age(n+1)+2 (n<5),程序代碼如下: #include int age(int n) int ss; if(n==5)ss=12; elsess=age(n+1)+2; return(ss); void main( ), i 26、nt age(int n); cout<<第一個(gè)人的年齡為< 27、)//第二個(gè)形參具有默認(rèn)值 if(k==2) return (n*n); else return (mult(n,k-1)*n); void main( ), cout< 28、k)//非法 void try(int j,int k=2,int m)//非法 void try(int j,int k=7)//合法 void try(int j,int k=2,int m=3) //合法 void try(int j=3,int k=2,int m=3)//合法,默認(rèn)形參值應(yīng)該在函數(shù)原型中給出。例如: int multi(int x=2,int y=5);//默認(rèn)形參值在函數(shù)原型中給出 void main( ) multi( );//并非無參調(diào)用,而是采用默認(rèn)值,x取值2,y取值5 int multi(int x,int y) return(x*y); ,在相同的作 29、用域內(nèi),默認(rèn)形參值的說明應(yīng)保持唯一。但如果在不同的作用域內(nèi),允許說明不同的默認(rèn)形參。這里的作用域是指直接包含著函數(shù)原型說明的大括號(hào)所界定的范圍。對(duì)作用域概念的詳細(xì)介紹請(qǐng)參閱第5章。例如: int add(int x=2,int y=5); //全局默認(rèn)形參值 void main( ) int add(int x=1,int y=9); //局部默認(rèn)形參值,add( ); //此處調(diào)用時(shí),采用局部默認(rèn)形參值,x取值1,y取值9 void func(void) add( ) //此處調(diào)用時(shí),采用全局默認(rèn)形參值,x取值2,y取值5 ,2.5 內(nèi) 聯(lián) 函 數(shù),內(nèi)聯(lián)函數(shù)(也稱在 30、線函數(shù))是在C++中為提高程序運(yùn)行效率而引入的。所有函數(shù)調(diào)用時(shí)都會(huì)產(chǎn)生一些額外的開銷,主要是系統(tǒng)棧的保護(hù)、代碼的傳遞、系統(tǒng)棧的恢復(fù)以及參數(shù)傳遞等。對(duì)于一些函數(shù)體很小但又經(jīng)常使用的函數(shù),由于被調(diào)用的頻率非常高,這種額外開銷也就很可觀,有時(shí)甚至?xí)?duì)運(yùn)行效率產(chǎn)生本質(zhì)的影響。,使用內(nèi)聯(lián)函數(shù)正是解決這一問題的手段。 內(nèi)聯(lián)函數(shù)不是在調(diào)用時(shí)發(fā)生轉(zhuǎn)移,而是在編譯時(shí)將函數(shù)體嵌入在每一個(gè)調(diào)用語句處。這樣就相對(duì)節(jié)省了參數(shù)傳遞、系統(tǒng)棧的保護(hù)與恢復(fù)等的開銷。 內(nèi)聯(lián)函數(shù)在定義時(shí)使用關(guān)鍵字inline區(qū)別于一般函數(shù),其語法形式如下: (含類型說明的形參表) 函數(shù)體 ,例如: 31、inline int mul(int a,int b) return a*b; 當(dāng)程序中出現(xiàn)mul(2+3,4)的函數(shù)調(diào)用時(shí),編譯程序就會(huì)將其擴(kuò)展為(2+3)*4。關(guān)鍵字inline是一個(gè)編譯命令,編譯程序在遇到這個(gè)命令時(shí)將記錄下來,在處理內(nèi)聯(lián)函數(shù)的調(diào)用時(shí),編譯程序就試圖產(chǎn)生擴(kuò)展碼。這樣從使用者的角度來看,內(nèi)聯(lián)函數(shù)在語法上與一般函數(shù)沒有什么區(qū)別,只是在編譯程序生成目標(biāo)代碼時(shí)才區(qū)別處理。,注意: 內(nèi)聯(lián)函數(shù)體內(nèi)一般不能有循環(huán)語句和switch語句。 內(nèi)聯(lián)函數(shù)的定義必須出現(xiàn)在第一次被調(diào)用之前。 對(duì)內(nèi)聯(lián)函數(shù)不能進(jìn)行異常接口聲明。 如果違背了上述注意事 32、項(xiàng)中的任一項(xiàng),編譯程序就會(huì)無視關(guān)鍵字inline的存在,像處理一般函數(shù)一樣處理,不生成擴(kuò)展代碼。因此,只有很簡單而使用頻率很高的函數(shù)才被說明為內(nèi)聯(lián)函數(shù)。內(nèi)聯(lián)函數(shù)會(huì)擴(kuò)大目標(biāo)代碼,使用時(shí)要謹(jǐn)慎。,【例2-11】內(nèi)聯(lián)函數(shù)例題。 #include #include inline int max(int a,int b) if(ab) return a; else return b; ,void main( ) int a,b,c,d; a=210; b=150; c=20; d=max(a,b); d=max(d,c); //編譯時(shí)兩個(gè)調(diào)用處均被替換為max函數(shù)體語句。 cout< 33、st of < 34、義求平方函數(shù),就必須對(duì)整數(shù)的平方、浮點(diǎn)數(shù)的平方以及雙精度數(shù)的平方分別用不同的函數(shù)名: intisq(int x,int y); float fsq(float x,float y); double dsq(double x,double y);,程序在調(diào)用這三個(gè)不同類型的函數(shù)時(shí),是以名字加以區(qū)別的,需要記住并區(qū)別它們的名稱。顯然,這樣就造成了代碼的重復(fù),使用起來也不方便,更不利于代碼的維護(hù)。 對(duì)于具有重載機(jī)制的C++語言,允許功能相近的函數(shù)在相同的作用域內(nèi)以相同函數(shù)名定義,因而使函數(shù)方便使用,便于記憶,也使程序設(shè)計(jì)更加靈活。仍以上例而言,在C++中只要用一個(gè)函數(shù)名 35、即可,如square( ),然后以賦給此函數(shù)的參數(shù)類型來決定是要計(jì)算int型、float型,還是double型的數(shù)的平方。上例在C++中的定義形式如下:,int square(int x); float square(float x); double square(double x); 要計(jì)算square(3)時(shí),C++自動(dòng)使用第一種形式;計(jì)算square(3.25)時(shí),C++自動(dòng)使用第三種形式;計(jì)算square(3.25f)時(shí),C++自動(dòng)使用第二種形式。 但是決不可以定義兩個(gè)具有相同名稱、相同參數(shù)類型和相同參數(shù)個(gè)數(shù),只是函數(shù)返回值不同的重載函數(shù)。,例如,以下定義是C+ 36、+不允許的: int func(int x); float func(int x); 由此可見,C++是按函數(shù)的參數(shù)表分辨相同名稱的函數(shù)。如果參數(shù)表相同,則認(rèn)為是錯(cuò)誤的說明。 C++允許重載函數(shù)有數(shù)量不同的參數(shù)個(gè)數(shù)。當(dāng)函數(shù)名相同而參數(shù)個(gè)數(shù)不同時(shí),C++會(huì)自動(dòng)按參數(shù)個(gè)數(shù)定向到正確的要調(diào)用的函數(shù)。下例說明了C++的這一特性。,【例2-12】重載函數(shù)應(yīng)用例題。 #include int add(int x,int y) int sum; sum=x+y; return(sum); int add(int x,int y,int z) ,int sum; sum=x+y+z
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 隱蔽工程驗(yàn)收要點(diǎn)
- 給排水中水泵揚(yáng)程與壓力的關(guān)系
- 水泥廠燒成回轉(zhuǎn)窯中控操作問題解答
- 地暖安裝注意事項(xiàng)
- 水泥廠中控操作自動(dòng)化專業(yè)試題(附答案)
- 防水套管的應(yīng)用與分類
- 施工現(xiàn)場(chǎng)職業(yè)健康管理制度
- 常見基坑工程的支護(hù)方式
- 水泥包裝車間各崗位職責(zé)
- 打樁機(jī)的種類
- 水泥磨操作員試題(附答案)
- 鋼結(jié)構(gòu)工程量計(jì)算注意事項(xiàng)
- 水泥控制工試題(附答案)
- 水泥生產(chǎn)工藝類知識(shí)考試題(附答案)-
- 鋼結(jié)構(gòu)安裝施工安全技術(shù)交底范文