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

正文內(nèi)容

第四章利用函數(shù)實現(xiàn)指定功能(文件)

2025-01-10 16:09 上一頁面

下一頁面
 

【正文】 執(zhí)行兩種以上操作,稱為重載 ? 如:輸出兩個數(shù)中的大者 ? void max(int,int){…// 代碼一 } ? void max(float,float){…// 代碼二 } ? void max(double,double){…// 代碼三 } ? 在 C中,不允許函數(shù)名相同,而 C++中,可以使用相同的函數(shù)名,以便于程序員記憶函數(shù)名,但執(zhí)行的操作卻不同 例 函數(shù)的重載 所以函數(shù)的重載是指 完成不同功能的函數(shù)可以 具有相同的函數(shù)名 。 } void main(void) { coutfun(3,5)endl。 僅返回值不同時,不能定義為重載函數(shù)。 coutfun(3,5)endl。 cinx。 } int add(int a,int b) { return a+b。 ? 所謂函數(shù)模板 ,實際上是建立一個 通用函數(shù) ,其函數(shù)類型和形參類型不具體指定 ,用 一個虛擬的類型 來代表 ?這個通用函數(shù)就稱為函數(shù)模板 ? ? 凡是函數(shù)體相同的函數(shù)都可以用這個模板來代替 ,不必定義多個函數(shù) ,只需在模板中定義一次即可 ? ? 在調(diào)用函數(shù)時系統(tǒng)會根據(jù)實參的類型來取代模板中的虛擬類型 ,從而實現(xiàn)了不同函數(shù)的功能 ? 例 函數(shù)模板 定義函數(shù)模板的一般形式為 template typename T 或 template class T templatetypename T //模板聲明 ,其中 T為類型參數(shù) T max(T a,T b,T c) //定義一個通用函數(shù) ,用 T作虛擬的類型名 {if(ba) a=b。 在調(diào)用函數(shù)時,若明確給出了這種實參的值,則使用相應實參的值;若沒有給出相應的實參,則使用缺省的值。i++) t=t*i。 int main() { void f(int x=100)。 } void f(int x) //此處 不能 再指定 { coutxendl。 f(200)。 //錯誤! ? 調(diào)用時 : ? f(6)。 ? f(6,7,8)。 } void main(void ) { int a=8, b=6。 } 48 16 8 ? 默認值可以是全局變量、全局常量,甚至是一個函數(shù)。 // error C2587: “i”: 非法將局部變量作為默認參數(shù) return 0。 /*定義變量 */ num=10。 宏展開只是一個簡單的“ 物理 ”替換,不做 語法檢查 ,不是一個語句, 其后不加分號“ ; ” 注意: define命令出現(xiàn)在函數(shù)的外面,其有效范圍為定義處至本源文件結束。 define R define PI define L 2*PI*R define S PI*R*R void main(void) { cout“ L=“ L“ S=” Sendl。 /* area=x*y。 area=S(a)。 b=2。 define S_ (r) P*r*r 二、文件包含 一個源文件可以將另外一個源文件的全部內(nèi)容包含進來,即將另外的文件包含到本文件之中。 包含后所有源文件編譯為一個可執(zhí)行文件。 endif 標識符 ifndef 標識符 程序段 1 else 程序段 2 endif 與形式 1相反,當標識符沒有被定義過(用 define定義 ),則對程序段 1進行編譯,否則編譯程序段 2。 define DEBUG 1 ...... if DEBUG coutx‘ \t’ yendl。 c=a/b。 static float fac( int n) { ...... } 外部函數(shù):函數(shù)的默認形式,可以被其它文件調(diào)用,用extern 定義該函數(shù)。 enter_string(str)。 void main(void) { extern enter_string( )。 endif cout“ c=“ deccendl。 采用條件編譯后,可以使機器代碼程序縮短。 endif 調(diào)試完后加 define DEBUG,則不輸出調(diào)試信息。也就是對一部分源程序指定編譯條件。 *.cpp *.h 一個 include語句只能指定一個被包含文件。 cout“ r=“ a“ \narea=” areaendl。 } S(r) PI*r*r S(a) PI*a*a PI*a*a 編譯前機械替換,實參形參一一對應 define PI define S(r) PI*r*r void main(void) { float a, area, b。 a=。 cinxy。 define G void main(void ) {.....} undef G int max(int a,int b) {...... } 對程序中用雙引號括起來的字符串內(nèi)容,即使與宏名相同,也不進行置換。 couttotal=“ totalendl。 這個標識符稱為 宏名 , 編譯前 的替代過程稱為“ 宏展開 ”。 例如 int main() { int i。 cout area(a) endl。 ? f(6, ,8)。 ? f(6,7)。 } ? 函數(shù)的參數(shù)兩個以上時,默認參數(shù)值只能 從右到左 指定 ? 調(diào)用函數(shù)時,指定的實參順序是自左到右,中間不能有間隔 ? 聲明 : ? void f(int i,int j=2,int k=3)。 void f(int x=100) { coutxendl。 f(200)。 } void main(void) { cout fac(6) endl。 for(int i=1。 return a。 cout3+5+8=add(3,5,8)endl。 coutsin(x,10)endl。} double sin(double x,int a) { return a+x。 } float fun (int a,int b) { return (float) a*a。 } 8 25 定義的重載函數(shù)必須具有 不同的參數(shù)個數(shù) ,或 不同的參數(shù)類型 。 int fun(int a, int b) { return a+b。 說明內(nèi)聯(lián)函數(shù)時 , 只是請求而不是命令編譯器要這樣去做 。 使用內(nèi)聯(lián)函數(shù),可以在編譯時直接用代碼替換掉函數(shù)調(diào)用語句,從而使執(zhí)行時不產(chǎn)生函數(shù)調(diào)用 舉例 ?內(nèi)聯(lián)函數(shù)的使用場合 1. 代碼不多,只有幾行語句 2. 沒有復雜結構語句( switch和循環(huán)),否則將被當作普通函
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1