一、函數的定義、聲明及調用
C++中,函數是一段可以被反覆利用的代碼,它接受參數並返回一個結果。函數的核心概念包括函數的定義、聲明及調用。
1.函數的定義
函數的定義由函數聲明和函數體組成,函數聲明說明函數名稱和參數的類型,函數體包含了實際的函數代碼。
int sum(int a, int b) { return a + b; }
2.函數的聲明
函數的聲明告訴編譯器函數的名稱、返回類型及參數的類型,但不包含函數體。
int sum(int a, int b);
3.函數的調用
函數調用是使用函數名稱和參數來調用函數。參數可以是常量、變量或表達式。
int main() { int a = 1, b = 2; int s = sum(a, b); cout << s << endl; return 0; }
二、形參與實參
C++中,函數的參數分為形參和實參。
1.形參
形參是在函數定義中聲明的,用於接收函數調用時傳遞來的參數。形參的值不會對函數外部變量產生影響。
int square(int x) { return x * x; }
2.實參
實參是在函數調用時傳遞的值,它可以是常量、變量或表達式。實參通過值傳遞、指針傳遞或引用傳遞給函數。
int main() { int a = 2; int s = square(a); cout << s << endl; return 0; }
三、返回值
C++函數的返回值可以是任意的數據類型,包括基本數據類型、結構體、指針等。函數可以返回一個值或不返回任何值。
int max(int a, int b) { if(a > b) { return a; } return b; }
四、函數重載
函數重載是指在同一作用域中定義多個同名函數,但參數類型或參數個數不同,使其可以根據傳遞的參數進行函數的調用。
void print(int x) { cout << "Int: " << x << endl; } void print(string s) { cout << "String: " << s << endl; }
五、默認參數
默認參數是指為參數在聲明時指定默認值,如果函數調用時沒有傳遞該參數,則使用其默認值。
int power(int x, int n = 2) { int res = 1; for(int i = 0; i < n; i++) { res *= x; } return res; }
在函數調用時可以不傳遞參數n。
int main() { int a = 2; int s1 = power(a); int s2 = power(a, 3); cout << s1 << " " << s2 << endl; return 0; }
六、內聯函數
內聯函數是將函數調用替換為函數體本身,以便在程序執行時減少函數調用的開銷。
inline int add(int a, int b) { return a + b; }
七、lambda表達式
lambda表達式是匿名函數,可以在函數內部定義和返回函數。它包括一個參數列表和一個函數體,可以捕獲一個或多個函數外部變量。
auto sum = [](int a, int b) { return a + b; }; int s = sum(2, 3); cout << s << endl;
八、總結
C++函數是程序的基本組成部分,函數的定義、聲明及調用、形參與實參、返回值、函數重載、默認參數、內聯函數和lambda表達式是函數的重要概念和技術。熟練掌握這些概念和技術對於開發高質量的C++應用程序至關重要。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/271329.html