c++複習(三)

第三章 函數
常量定義:const float PI=3.1415

定義函數:講一個模塊的算法,用c++語言描述出來
函數返回值:需要返回的計算結果

函數定義語法:
類型標識符 函數名(形參)——type name,相當於一個局部變量
{
語句
return 計算結果**(計算結果的類型由類型標識符決定,若爲void,則不用寫return語句)**
}

函數調用之前需要聲明,告訴編譯器我即將調用一個函數
函數原型聲明
類型標識符 被調用函數名(含類型說明的形參表)
函數調用
函數名 (實參列表)——已經佔有存儲空間
遞歸調用:函數自己調用自己

參數傳遞:
在參數調用時才分配形參的存儲單元
實參可以是常量,變量或表達式
實參類型必須與形參相符
值傳遞是傳遞參數值,即單向傳遞
引用傳遞可以實現雙向傳遞
常引用作參數可以保障實參數據的安全(開銷比傳值小)

引用類型
引用(&)是標識符的別名
例如:int i,j;
int &ri=i;//定義int引用ri,並初始化爲變量I的引用,引用一旦被指定,就不能指向其他對象,引用可以作爲形參
swap函數交換兩個函數值時,實參初始化形參後,子函數執行完直接消亡,沒有傳回主函數中,主函數輸出的值未改變,所以需要引用傳遞swap(int& a,int& b);在定義形參被定義時,並沒有被分配存儲空間,在函數調用過程中才被落實。

含有可變參數的函數,c++提供了兩種方法
如果所有的實參類型相同,可以傳遞一個名爲initializer_list(是一種標準庫類型,用於表示某種特定類型的值得數組,該類型定義在同名的頭文件中)的標準庫類型
如果是慘的類型不同,我們可以編寫可變參數的模板

內聯函數
能夠提高運行效率,希望編譯器編譯時用函數體裏面的語句去替換函數調用表達式(表面是函數調用,實際有編譯器進行簡單處理)
inline 聲明,注意:
內聯函數體內不能有循環語句和switch語句
函數的定義必須出現在函數第一次被調用之前
地內聯函數不能進行異常接口聲明

consterpr函數:
例:consterpr intget_size{return 20}

帶默認參數值的函數
可以預先設置默認的參數值,調用時如果給出實參,則採用實參,否則採用預先設置的形參值
默認參數值說明順序:
默認形參前不能有無默認值的形參,調用時實參與形參的結合必須從左往右

函數重載多態性,靜態機制
c++允許功能相近的函數在相同的作用域內以相同的函數名聲明,從而行成重載,例:計算不同類型數據的運算結果
形參個數可以不同
功能相同,函數名相同,類型不同,參數個數不同

c++系統函數
求平方根函數sqrt,求絕對值函數abs,使用系統函數時要包含相應的頭文件cmath

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章