在C++中,函數(shù)的形式列表中的形參是可以有默認(rèn)值的。
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比桓臺網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式桓臺網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋桓臺地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。
語法:返回值類型 函數(shù)名(參數(shù) = 默認(rèn)值) { }
示例:
#include
using namespace std;
//函數(shù)默認(rèn)參數(shù)
//如果我們自己傳入了數(shù)據(jù),就用自己的數(shù)據(jù),如果沒有,那么就用默認(rèn)值
//語法: 返回值類型 函數(shù)名(形參 = 默認(rèn)值){}
int func(int a, int b = 20, int c =30)
{
return a + b + c;
}
int main()
{
cout << func(10, 30) << endl;
system("pause");
return 0;
}
注意事項(xiàng):
C++中函數(shù)的形參列表中可以有占位參數(shù),調(diào)用函數(shù)時(shí)必須填補(bǔ)該位置
語法:返回值類型 函數(shù)名(函數(shù)類型){}
示例:
#include
using namespace std;
//占位參數(shù)
//返回值類型 函數(shù)名(數(shù)據(jù)類型){}
void func(int a, int)
{
cout << "This is a func" << endl;
}
int main()
{
func(10, 10);
system("pause");
return 0;
}
作用:函數(shù)名可以相同,提高復(fù)用性
函數(shù)重載滿足條件:
注意:函數(shù)的返回值不可以作為函數(shù)重載的條件
示例:
#include
using namespace std;
//函數(shù)重載
//可以讓函數(shù)名相同,提高復(fù)用性
//函數(shù)重載的滿足條件
//1、在同一個(gè)作用域下
//2、函數(shù)名稱相同
//3、函數(shù)的參數(shù)類型不同,或者個(gè)數(shù)不同,或則和順序不同
void func(double a)
{
cout << "func(double a)的調(diào)用" << endl;
}
void func(int a)
{
cout << "func(int a) 的調(diào)用!" << endl;
}
int main()
{
func(1.1);
system("pause");
return 0;
}
示例:
#include
using namespace std;
//函數(shù)重載的注意事項(xiàng)
//1、引用作為重載的條件
void func(int& a)
{
cout << "func(int& a)調(diào)用" << endl;
}
void func(const int& a)
{
cout << "func(const int& a)調(diào)用" << endl;
}
//2、函數(shù)重載碰到默認(rèn)參數(shù)
void func2(int a, int b = 10)
{
cout << "func2(int a)調(diào)用" << endl;
}
void func2(int a, int b)
{
cout << "func2(int a)調(diào)用" << endl;
}
int main()
{
int a = 10;
func(a);//調(diào)用第一個(gè)版本
func(10);//調(diào)用第二個(gè)版本
//func2(10);//報(bào)錯(cuò),當(dāng)函數(shù)重載碰到默認(rèn)參數(shù)時(shí)候出現(xiàn)二義性,導(dǎo)致無法調(diào)用
system("pause");
return 0;
}