3. 函式
3.1 函式默認引數
1 #include<iostream> 2 using namespace std; 3 4 //函式的默認引數 5 //自己傳參,就用自己的,如果沒有,就用默認值 6 int func(int a, int b = 20, int c = 30) 7 { 8 return a + b + c; 9 } 10 11 //注意: 12 //1.如果某個位置有了默認引數,那么從這個位置往后,從左到右必須有默認引數 13 //2.如果函式宣告中有默認引數,函式實作就不能有默認引數 14 //即,宣告和實作只能一個有默認引數 15 int func2(int a = 10, int b = 20); 16 17 //int func2(int a = 20, int b = 30) { 18 // return a + b; 19 //} 20 // 報錯,重定義默認引數 21 22 int main() { 23 24 cout << func(10, 20, 30) << endl; 25 cout << func2(10, 20) << endl; 26 27 system("pause"); 28 29 return 0; 30 } 31 32 //總結 33 //在C++中,函式的形參串列中的形參可以有默認值的 34 //語法:回傳值型別 函式名 (引數=引數默認值){} 35 //
3.2 函式占位引數
1 #include<iostream> 2 using namespace std; 3 4 //函式占位引數,占位引數也可以有默認引數 5 void func(int a, int = 10) { 6 cout << "a = " << a << endl; 7 } 8 9 int main() { 10 11 int a = 10; 12 int b = 20; 13 14 func(a, b); 15 16 system("pause"); 17 18 return 0; 19 } 20 21 //總結 22 //形參串列可以有占位引數,用作占位,呼叫函式時必須填補該位置 23 //語法:回傳值型別 函式名(資料型別){}
3.3.1 函式多載概述
#include<iostream> using namespace std; //函式多載 //讓函式名相同,提高復用性 void func() { cout << "func的函式呼叫" << endl; } void func(int a) { cout << "func的函式呼叫!" << endl; } int main() { func(3); system("pause"); return 0; } //總結 //作用:函式名可以相同,提高復用性 //函式多載滿足條件: //1.同一個作用域下 //2.函式名稱相同 //3.函式引數型別不同 或者 個數不同 或者 順序不同 //注意:函式的回傳值不可以作為函式多載的得條件
3.3.2 函式多載注意事項
#include<iostream> using namespace std; //函式多載注意事項 //1.參考作為多載條件 void func(int& a) { // int &a = 10; 不合法的 cout << "func (int &a)的呼叫" << endl; } void func(const int& a) { // const int &a = 10; //會做轉換 cout << "func (const int &a)的呼叫" << endl; } //2.函式多載遇到默認引數 void func2(int a, int b = 10) { cout << "func2 (int a, int b)的呼叫" << endl; } void func2(int a) { cout << "func2 (int a)的呼叫" << endl; } int main() { int a = 10; func(a); // func (int &a)的呼叫 func(10); // func (const int &a)的呼叫 //func2(10); //當函式多載碰到默認引數,出現二義性,報錯,編程時盡量避免 system("pause"); return 0; } //總結 //參考作為多載條件 //函式多載碰到默認引數
參考:《黑馬程式員》C++教程
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/468757.html
標籤:其他
上一篇:LINUX系統虛擬機環境的安裝
