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

正文內(nèi)容

過程抽象函數(shù)ppt課件(參考版)

2025-05-02 03:59本頁面
  

【正文】 ? 因為根據(jù)標(biāo)準(zhǔn)轉(zhuǎn)換, 1(屬于 int型)既可以轉(zhuǎn)成 char,又可以轉(zhuǎn)成 double ? 解決辦法是: ? 對實參進行顯式類型轉(zhuǎn)換,如, ? print ((char)1) 或 print ((double)1) ? 增加額外的重載,如, ? 增加一個重載函數(shù)定義: void print(int)。 void print(double)。 綁定到函數(shù): void print(char)。 void print(char *)。 ( 3)標(biāo)準(zhǔn)轉(zhuǎn)換匹配 ? 任何算術(shù)類型可以互相轉(zhuǎn)換 ? 枚舉類型可以轉(zhuǎn)換成任何算術(shù)類型 ? 零可以轉(zhuǎn)換成任何算術(shù)類型或指針類型 ? 任何類型的指針可以轉(zhuǎn)換成 void * ? 派生類指針可以轉(zhuǎn)換成基類指針 ? 每個標(biāo)準(zhǔn)轉(zhuǎn)換都是平等的。 print()。)。 ? 根據(jù)提升匹配,下面的函數(shù)調(diào)用: print(39。 ( 2)提升匹配 ? 先對實參進行下面的類型提升,然后進行精確匹配: ? 按整型提升規(guī)則提升實參類型 ? 把 float類型實參提升到 double ? 把 double類型實參提升到 long double ? 例如,對于下述的重載函數(shù): void print(int)。)。 print(39。 print()。 下面的函數(shù)調(diào)用: print(1)。 void print(double)。例如: ? print()將調(diào)用 void print(double d) { ...... } ? 對重載函數(shù)調(diào)用的綁定在 編譯時刻由編譯程序根據(jù)實參與形參的匹配情況來決定 。例如,把下面的函數(shù): void print_int(int i) { ...... } void print_double(double d) { ...... } void print_char(char c) { ...... } void print_A(A a) { ...... } //A為自定義類型 定義為: void print(int i) { ...... } void print(double d) { ...... } void print(char c) { ...... } void print(A a) { ...... } ? 上述的函數(shù)定義形式稱為 函數(shù)名重載 。 ?在不同的源文件中,對同一個函數(shù)的聲明可以對它的同一個參數(shù)指定不同的默認(rèn)值; ?在同一個源文件中,對同一個函數(shù)的聲明只能對它的每一個參數(shù)指定一次默認(rèn)值。 //OK ? void f(int a, int b=1, int c)。 //28傳給 value; 2傳給 base 帶缺省值的形式參數(shù) ? 在指定函數(shù)參數(shù)的默認(rèn)值時,應(yīng)注意下面幾點: ?有默認(rèn)值的形參應(yīng)處于形參表的右部。 下面的調(diào)用: print(28)。如果調(diào)用這些函數(shù)時沒有提供相應(yīng)的實參,則相應(yīng)的形參采用指定的默認(rèn)值。)?1:0。ch=39。amp。 } int isnumber( char ch ) {return( ch =39。 ) {if (isnumber(c) ) n++。 while( ( c= getchar() ) != 39。 int n 。 include include inline int isnumber( char ) 。由于內(nèi)聯(lián)函數(shù)名具有文件作用域,因此,不會出現(xiàn)重復(fù)定義問題。 ③ 遞歸函數(shù)不能說明為內(nèi)聯(lián)函數(shù)。 內(nèi)聯(lián)函數(shù) ? 使用內(nèi)聯(lián)函數(shù)時應(yīng)注意以下幾點: ① 若 inline不在函數(shù)名第一次出現(xiàn)時指定,則編譯器把它作為普通函數(shù)處理。 } 上面程序的運行結(jié)果是 A) sum=9 B) sum=10 C) sum=12 D) sum=18 內(nèi)聯(lián)函數(shù) ? 內(nèi)聯(lián)函數(shù)是指在定義函數(shù)定義時,在函數(shù)返回類型之前加上一個關(guān)鍵詞 inline,例如: inline int max(int a, int b) { return ab?a:b。 int sum=ADD(m+n)*k。 include iostream using namespace std。 例如: ? define凵 max(a,b)凵 (((a)(b))?(a):(b)) ? max(x+1,y*2)將被替換成: ? (((x+1)(y*2))?(x+1):(y*2)) ? 不進行參數(shù)類型檢查和轉(zhuǎn)換 。 宏定義的不足之處 ? 需要加上很多的括號 。 ? C++提供了兩種解決上述問題的辦法: ?宏定義 ?內(nèi)聯(lián)函數(shù) 宏定義 ? 在 C++中 , 利用一種編譯預(yù)處理命令: 宏定義 ,用它可以實現(xiàn)類似函數(shù)的功能: ? define凵 宏名 (參數(shù)表 )凵 文字串 例如: ? define凵 max(a,b)凵 (((a)(b))?(a):(b)) ? 在編譯之前 , 將對宏的使用進行 文字替換 ! 例如:編譯前將把 ? cout max(x,y)。 ?遞歸算法有時會出現(xiàn)重復(fù)計算。 ? 在實現(xiàn)數(shù)據(jù)的操作上,它們有一點不同: ?循環(huán)是在 同一組變量 上進行重復(fù)操作(循環(huán)常常又稱為 迭代 ) ?遞歸則是在 不同的變量組 (屬于遞歸函數(shù)的不同實例)上進行重復(fù)操作。,n)。,39。,39。 hanoi(39。 cout Input n:。 // 把第 n個圓盤 ,xy hanoi(z,y,x,n1)。 // 把第 1個盤子 ,xy else { hanoi(x,z,y,n1)。 include iostream using namespace std。 3. 把 n1個圓盤從柱子 C移到柱子 B。 2. 把第 n個圓盤從柱子 A移到柱子 B。 A B C 分析: ? 當(dāng) n=1時,只要把 1個圓盤從 A移至 B就可以了 ? cout 1:A?B endl?,F(xiàn)要把柱子 A上的所有圓盤移到柱子 B上,要求每次只能移動一個圓盤,且大盤不能放在小盤上,移動時可借助柱子 C。 else return n*f(n1)。 else return fib(n2)+fib(n1)。 遞歸函數(shù) 遞歸模型 遞歸終止條件 遞歸體 確定遞歸的方式將一個問題轉(zhuǎn)化成一個新問題,且解題方法相似,每一步轉(zhuǎn)化都越接近終止條件。 ....... } ? 直接遞歸 void f() { ....... ... f() ... ....... } ? 間接遞歸 extern void g()。 void h() { ...... } void g() { ...... h()。 //A中的 f ... B::x ... //B中的 x B::f()。 //B中的 f using A::f。 ... x ... //A中的 x
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1