目錄
前言
一、函式默認引數
二、函式占位引數
三、函式多載
結束語
前言
博主通過對C++基礎知識的總結,有望寫出深入淺出的C++基礎教程專欄,并分享給大家閱讀,今后的一段時間我將持續更新C++入門系列博文,想學習C++的朋友可以關注我,希望大家有所識訓,
一、函式默認引數
語法:回傳值型別 函式名 (引數=默認值) { }
如果自己傳入引數,就用自己的資料,如果沒有,則用默認值,
int func(int a, int b = 20, int c = 30)
{
return a + b + c;
}
int main()
{
cout << func(10) << endl; // b、c有默認值
system("pause");
return 0;
}
注意事項:
(1)如果某個位置已經有了默認引數,那么從這個位置往后,從左到右都必須有默認值;
(2)如果函式宣告有默認引數,函式實作就不能有默認引數,宣告和實作只能是其中一個有默認引數,
二、函式占位引數
語法:回傳值型別 函式名 (資料型別) { }
void func(int a, int)
{
cout << "this is func" << endl;
}
// 函式呼叫中的第二個實參必須傳入一個整型資料
func(10,20);
三、函式多載
作用:函式名可以相同,提高復用性,
條件:
(1)同一個作用域下;
(2)函式名相同;
(3)函式引數型別不同或者個數不同或者順序不同,
// 同一個作用域下,函式名相同
void func()
{
cout << "func的呼叫" << endl;
}
void func(int a)
{
cout << "func(int a)的呼叫" << endl;
}
void func(double a)
{
cout << "func(double a)的呼叫" << endl;
}
void func(int a,double b)
{
cout << "func(int a,double b)的呼叫" << endl;
}
void func(double a, int b)
{
cout << "func(double a, int b)的呼叫" << endl;
}
// 函式的回傳值不可以作為函式多載的條件
int func(double a, int b) // 錯誤
{
cout << "func(double a, int b)的呼叫" << endl;
}
注意事項:
(1)參考作為多載的條件;
// 參考作為多載的條件
void func(int &a)
{
cout << "func(int &a)的呼叫" << endl;
}
void func(const int &a)
{
cout << "func(const int &a)的呼叫" << endl;
}
int a = 10;
func(a); // func(int &a)的呼叫
func(10); // func(const int &a)的呼叫
(2)函式多載碰到默認引數,出現二義性,編譯器會報錯,
// 函式多載碰到默認引數
void func2(int a, int b = 10)
{
cout << "func(int a, int b = 10)的呼叫" << endl;
}
void func2(int a)
{
cout << "func(int a)的呼叫" << endl;
}
func2(10); // 出現二義性,編譯器會報錯
結束語
大家的點贊和關注是博主最大的動力,博主所有博文中的代碼檔案都可分享給您(除了少量付費資源),如果您想要獲取博文中的完整代碼檔案,可通過C幣或積分下載,沒有C幣或積分的朋友可在關注、點贊和評論博文后,私信發送您的郵箱,我會在第一時間發送給您,博主后面會有更多的分享,敬請關注哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/286833.html
標籤:其他
