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

正文內(nèi)容

《過程抽象函數(shù)》ppt課件(文件)

2025-05-17 03:59 上一頁面

下一頁面
 

【正文】 int b) { return ab?a:b。 ③ 遞歸函數(shù)不能說明為內(nèi)聯(lián)函數(shù)。 include include inline int isnumber( char ) 。 while( ( c= getchar() ) != 39。 } int isnumber( char ch ) {return( ch =39。ch=39。如果調(diào)用這些函數(shù)時沒有提供相應的實參,則相應的形參采用指定的默認值。 //28傳給 value; 2傳給 base 帶缺省值的形式參數(shù) ? 在指定函數(shù)參數(shù)的默認值時,應注意下面幾點: ?有默認值的形參應處于形參表的右部。 ?在不同的源文件中,對同一個函數(shù)的聲明可以對它的同一個參數(shù)指定不同的默認值; ?在同一個源文件中,對同一個函數(shù)的聲明只能對它的每一個參數(shù)指定一次默認值。例如: ? print()將調(diào)用 void print(double d) { ...... } ? 對重載函數(shù)調(diào)用的綁定在 編譯時刻由編譯程序根據(jù)實參與形參的匹配情況來決定 。 下面的函數(shù)調(diào)用: print(1)。 print(39。 ( 2)提升匹配 ? 先對實參進行下面的類型提升,然后進行精確匹配: ? 按整型提升規(guī)則提升實參類型 ? 把 float類型實參提升到 double ? 把 double類型實參提升到 long double ? 例如,對于下述的重載函數(shù): void print(int)。)。 ( 3)標準轉(zhuǎn)換匹配 ? 任何算術類型可以互相轉(zhuǎn)換 ? 枚舉類型可以轉(zhuǎn)換成任何算術類型 ? 零可以轉(zhuǎn)換成任何算術類型或指針類型 ? 任何類型的指針可以轉(zhuǎn)換成 void * ? 派生類指針可以轉(zhuǎn)換成基類指針 ? 每個標準轉(zhuǎn)換都是平等的。 綁定到函數(shù): void print(char)。 ? 因為根據(jù)標準轉(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)。 void print(char *)。 print()。 ? 根據(jù)提升匹配,下面的函數(shù)調(diào)用: print(39。)。 print()。 void print(double)。例如,把下面的函數(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ù)名重載 。 //OK ? void f(int a, int b=1, int c)。 下面的調(diào)用: print(28)。)?1:0。amp。 ) {if (isnumber(c) ) n++。 int n 。由于內(nèi)聯(lián)函數(shù)名具有文件作用域,因此,不會出現(xiàn)重復定義問題。 內(nèi)聯(lián)函數(shù) ? 使用內(nèi)聯(lián)函數(shù)時應注意以下幾點: ① 若 inline不在函數(shù)名第一次出現(xiàn)時指定,則編譯器把它作為普通函數(shù)處理。 int sum=ADD(m+n)*k。 例如: ? 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++中 , 利用一種編譯預處理命令: 宏定義 ,用它可以實現(xiàn)類似函數(shù)的功能: ? define凵 宏名 (參數(shù)表 )凵 文字串 例如: ? define凵 max(a,b)凵 (((a)(b))?(a):(b)) ? 在編譯之前 , 將對宏的使用進行 文字替換 ! 例如:編譯前將把 ? cout max(x,y)。 ? 在實現(xiàn)數(shù)據(jù)的操作上,它們有一點不同: ?循環(huán)是在 同一組變量 上進行重復操作(循環(huán)常常又稱為 迭代 ) ?遞歸則是在 不同的變量組 (屬于遞歸函數(shù)的不同實例)上進行重復操作。,39。 hanoi(39。 // 把第 n個圓盤 ,xy hanoi(z,y,x,n1)。 include iostream using namespace std。 2. 把第 n個圓盤從柱子 A移到柱子 B。現(xiàn)要把柱子 A上的所有圓盤移到柱子 B上,要求每次只能移動一個圓盤,且大盤不能放在小盤上,移動時可借助柱子 C。 else return fib(n2)+fib(n1)。 ....... } ? 直接遞歸 void f() { ....... ... f() ... ....... } ? 間接遞歸 extern void g()。 //A中的 f ... B::x ... //B中的 x B::f()。 ... x ... //A中的 x f()。 void f() { ...... } } //模塊 2 namespace B { int x=0。 ? C++提供了名空間( namespace)設施來解決上述的名沖突問題。 //文件作用域 static void f() //文件作用域 { ...... } // extern int y。 ++標識符的作用域 double x。 //外層 x的定義 ... x ... //外層的 x while ( ... x ...) //外層的 x { ... x ... //外層的 x, double x。 cin n。 ....... } void g() { x++。 ++標識符的作用域 void f(int n) { x++。 ?一個定義了的標識符的有效范圍(能被訪問的程序段)稱為該標識符的作用域。k++) coutf(a)endl。 return(a+b+c)。 static int c=3。 ? register:使局部變量也具有自動生存期,由編譯程序根據(jù) CPU寄存器的使用情況來決定是否存放在寄存器中。 (2)存儲類修飾符 ? auto:使局部變量具有自動生存期。 局部變量和函數(shù)的參數(shù)一般具有自動生存期 。 (存儲分配) (1)把程序運行時一個變量占有內(nèi)存空間的時間段稱為該 變量的生存期 。 } void ma
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1