freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c程序設(shè)計教程:第5章-函數(shù)和函數(shù)模板-wenkub.com

2024-10-02 16:26 本頁面
   

【正文】 ? 一般來講 , 如果是大家共有的常數(shù)和變量 , 可以協(xié)商放在一個公共的頭文件中 。 頭文件和函數(shù)原型的作用 ? 一般是將所有的函數(shù)原型和外部變量的聲明,以及常數(shù)的定義都放在一個頭文件里,需要這些頭文件的源文件,就可以將它們包含進去。 } //主函數(shù)使用的頭文件 include iostream using namespace std。 coutInput a and b:endl。 ? 為了說明使用 const定義常數(shù)問題,特讓 中的 mean函數(shù)使用常系數(shù) DIV2。其實,工程應(yīng)用時,許多文件就是以函數(shù)為單位的。下面編制的程序就是考慮到這些實施方法而設(shè)計的。 兩個函數(shù)模塊互不牽扯 。為了敘述方便,以后將Visual C++ 簡稱 VC,將 Borland C ++ 簡稱 BC。 ? 可通過使用參數(shù)的副本函數(shù)完成所要求的工作 。 cout The sum is xendl。 include iostream using namespace std。 } int addtwo() { int a,b。 int addtwo(void)。 } ? 有錯誤。它是否有錯誤?為什么?假設(shè)在 主函數(shù)main中調(diào)用它并把它的值賦給 N,寫出此程序。 而 func(amp。 return *s。} } char func(charamp。 i++){ couti,(int)iendl。 void main(){ for(char i=39。 include iostream using namespace std。 return *s。 couti。a39。 include iostream using namespace std。 } char func(char *s){ (*s)++。i))。a39。 include iostream using namespace std。 } char func(char *s){ (*s)++。 couti。f39。 char func(char*)。 【 例 】 分析下面程序的輸出結(jié)果并說明理由。它如同一篇文章,自上而下地寫下來。 ? 用流程圖和 NS流程圖表示算法 , 直觀易懂 , 但畫起來比較費事 , 在設(shè)計一個算法時 , 可能要反復(fù)修改 , 而修改流程圖是比較麻煩的 。在這種流程圖中,完全去掉了帶箭頭的流程線,全部算法寫在一個矩形框內(nèi),這個矩形框還可以包含其他的從屬于它的框,或者說,由一些基本的框組成一個大的框。 ? 在某些具有條件判斷的場合下 , 使用判定表表示算法能給人一種非常清晰的感覺 。 常用過程設(shè)計算法描述方法 ? 可以用不同的方法表示一個算法 。 } } 運行輸出如下: 牌照號碼是: 317744 ? 由這幾個例題可知,解題需要具體的算法,描述算法的方法很多,稱為算法描述。 for(c=31。 i=9。 if c*c=k then cout“牌照號碼是: ” 310000+kendl。 j=9。 直接使 用 for語句格式 , 用循環(huán)變量與 endfor構(gòu)成結(jié)束標(biāo)記 。 【 選擇算法 】 ? 為了從這些線索中求出牌照號碼 , 只要求出后四位再加上 310000即可 。 i=m。 ? 一般用 endfor,endif,endwhile語句和 for, if, while語句相配合以指示結(jié)束的地方,以便有助于算法的閱讀和理解。 ? 需要將變量 m傳遞給函數(shù) , 在函數(shù)體內(nèi)需要對兩個變量進行遞推相乘 。 if(number1 number2) coutmax= number1endl。 程序開始 要求提示輸入 2個數(shù)字 賦值給變量 number1, number2 如果 number1number2 輸出 number1 否則輸出 number2 程序結(jié)束 【 算法描述 】 如果使用英文及語句說明,可以像下面這樣說明: BEGIN Print InputMessage Input number1, number2 if number1number2 then Print number1 else Print number2 endif END 【 編程實現(xiàn) 】 下面是 C++語言的實現(xiàn)程序: include iostream using namespace std。 ? 下面舉幾個例子,具體說明如何考慮前面① ~③ 步。 ? 表面上看,運行結(jié)果不正確要返回④,其實這是因為題目簡單,又是在計算機上調(diào)試,實質(zhì)上是要對③復(fù)查。 解題和算法描述 計算機解題 ? 學(xué)習(xí)了這幾章的知識 , 也接觸了一些例題 , 應(yīng)該說對計算機解決問題的步驟有了初步認識 。C39。B39。)endl。,39。,39。 coutmax(,)=max(,) max(39。,39。 int a[]={5,4,3,2,1,11,9,8,7,6}。 in。} template class T //聲明函數(shù)模板 T max(T m1, T m2, T m3) //求三者最大值的函數(shù)模板 { T t=max(m1,m2)。 ? 每次聲明函數(shù)必須重寫 “ template class T”,以便讓編譯器知道下面是函數(shù)模板。 可把上面的函數(shù)重新改寫為以下形 template class T T max(T m1, T m2) { return(m1m2)?m1:m2。 ? 規(guī)定模板以 template關(guān)鍵字和一個形參表開頭 。 ? 在程序設(shè)計時并不給出相應(yīng)數(shù)據(jù)的實際類型 , 而在實際編譯時 , 方由編譯器利用實際的類型給予實例化 , 使它滿足需要 。 ? 由于函數(shù)沒有在設(shè)計時用實際的類型來初始化 , 故其靈活性得到加強 。 ? 僅有函數(shù)返回值不同也是區(qū)分不了重載函數(shù)的。 int add(int m1=0, int m2=0, int m3=0, int m4=0) {return m1+m2+m3+m4。 不過 ,如果要求 4個整數(shù)之和 , 使用函數(shù)重載則需要編寫 3個函數(shù) 。 ? 動態(tài)聯(lián)編需要虛函數(shù)的支持 , 這將在第 9章介紹 。 ? C++的多態(tài)性又被直觀地稱為 “ 一個名字,多個函數(shù) ” 。只有知道移動動作作用的對象,才能將它與一系列特殊操作聯(lián)系起來。 } C++能夠正確調(diào)用相應(yīng)函數(shù) , 程序輸出結(jié)果如下: 56 w max(5,9,4)=9 max(5,4,9)=9 ? 從函數(shù)原型可見,它們的區(qū)別一是參數(shù)類型不同,二是參數(shù)個數(shù)不同。} int max(int m1, int m2) {return(m1m2)?m1:m2。p39。 //2個字符型參數(shù)的函數(shù)原型 int max(int,int,int)。 include iostream using namespace std。 ? 在下面的例子中,為求兩個數(shù)值中的最大者,設(shè)計一個名為 max的函數(shù),并為不同參數(shù)類型各設(shè)計一個函數(shù)體。939。039。 ? 由于編譯器必須知道內(nèi)聯(lián)函數(shù)的函數(shù)體 , 才能進行內(nèi)聯(lián)替換 , 因此 , 內(nèi)聯(lián)函數(shù)必須在程序中第一次調(diào)用此函數(shù)的語句出現(xiàn)之前被編譯器看見 。使用關(guān)鍵字 inline說明的函數(shù)稱內(nèi)聯(lián)函數(shù)。 c=39。為了提高效率 , 常常將函數(shù) main中對函數(shù) isnumber的調(diào)用替換成表達式 , if ( (c=39。 cin c。939。039。 ? 可以通過函數(shù)指針將函數(shù)作為參數(shù)傳給其他函數(shù) ,以便能夠創(chuàng)造出功能很強的高級函數(shù)系統(tǒng) 。 s2=s2+s1+ 。 } string input(const int n){ string s1, s2。 coutInput n=。 返回對象的函數(shù) 【 例 】 函數(shù)返回對象的例子。 ? 在 C++中,除了內(nèi)存分配失敗之外, new不會返回空指針,并且沒有任何對象的地址值為零。 return buf。 //根據(jù)輸入數(shù)據(jù)數(shù)量申請空間 if(buf==0) return NULL。 n) //定義返回指針的函數(shù) { cout Input number:。 inum。 // void main( ) { int num。 【 例 】 使用函數(shù) input 輸入一組數(shù)并返回一個指針,然后由主函數(shù) main將這組數(shù)顯示出來的例子。 //聲明的局部對象 ... //函數(shù)的其他內(nèi)容 return a。} //返回指定下標(biāo)的整數(shù)數(shù)組內(nèi)容 ? 在其他情況下 , 一個函數(shù)是不能直接用在賦值運算符左邊的 。 //返回引用的函數(shù)原型聲明 void main( ) { index(3)=16。 include iostream using namespace std。 ? 雖然在 C++中允許返回一個指向局部靜態(tài)對象的指針或引用 , 但最好不要這樣做 。 復(fù)合對象是指結(jié)構(gòu)或類的對象 。 非 void類型的函數(shù)必須向調(diào)用者返回一個值 。 這主要是為了提高系統(tǒng) 的自身安全 。 } void change(const stringamp。)。a, const int b) { a=a+b。 void main( ) { int a=30, b=18。 【 例 】 演示不可改變參數(shù) b的實例。 coutin swap: a=a b=b。a, stringamp。//string類對象的引用 void main( ){ string a(first), b(second)。 include iostream include string using namespace std。 =temp。 //傳引用 cout Now a= b=。 下面將它進行局部修 改 , 以便用來傳引用 。 =。 void swap(LIST)。 【 例 】 傳遞結(jié)構(gòu)對象實例。 a[0]=a[1]。 //數(shù)組原型使用 “ 類型 [ ]”的形式 void main( ) { int a[]={3,8}。 2. 傳遞數(shù)組名 數(shù)組名就是存儲數(shù)組的首地址,所以數(shù)組名作為參數(shù)傳遞時,就是傳遞的地址,因此被調(diào)用函數(shù)能夠改變數(shù)組原來的內(nèi)容。 } 雖然函數(shù)原型參數(shù)的類型是指針 , 但可以直接讓 它指向?qū)ο蟮刂?, 即 int *p1=amp。 } void swap(int *p1, int *p2) { int temp=*p1。 //可以直接使用 swap(amp。 int *p1=amp。 1. 傳遞指針 【 例 】 為指針賦參數(shù)的方式選取不合適的例子。 return (max1max2)?max1:max2。 【 例 】 設(shè)計一個最多可求 4個正整數(shù)的最大者的函數(shù)。 默認參數(shù)可以多于 1個 , 但必須放在參數(shù)序列的后部 , int SaveName( char *first, char *second = , char *third = ,char *fourth = )。 默認參數(shù) ? C++語言在函數(shù)調(diào)用時 , 引進了一種新類型的參數(shù):默認參數(shù) 。 coutin swap: m=a=“ m n=b=nendl。m, intamp。 //函數(shù)參數(shù)采用傳引用方式 void main() { int a=3, b=8。 include iostream using namespace std。 輸出結(jié)果如下: in swap: a=8 b=3 Now a=8 b=3 傳引用方式 ? C++提供引用,主要是用來建立函數(shù)參數(shù)的引用傳遞方式。 *a=*b。a,amp。 include iostream using namespace std。 a=b。
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1