C++淺析缺省參數(shù)的使用
一. 概念
缺省參數(shù)(有些地方叫默認(rèn)參數(shù))是聲明或定義函數(shù)時為函數(shù)的參數(shù)指定一個默認(rèn)值。在調(diào)用該函數(shù)時,如果沒有指定實(shí)參則采用該默認(rèn)值,否則使用指定的實(shí)參。
void TestFunc(int a = 0)
{
cout << a << endl;
}
int main()
{
TestFunc(); //沒有傳參時,使用參數(shù)的默認(rèn)值
TestFunc(10); //傳參時,使用指定的實(shí)參
}二. 分類
全缺省參數(shù)
缺省全部參數(shù)
void TestFunc(int a = 10, int b = 20, int c = 30)
{
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c = " << c << endl;
}半缺省參數(shù)
缺省部分參數(shù)
void TestFunc(int a, int b = 10, int c = 20)
{
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c = " << c << endl;
}注意:
1. 半缺省參數(shù)必須從右往左缺省,連續(xù)的,不能間隔著給
void Test(int a = 10, int b = 20, int c = 30)
{
cout << a << " " << b << " " << c << endl;
}
int main()
{
Test();//全用默認(rèn)的,全缺省
Test(1);//只有第一個不用默認(rèn)的,半缺省
Test(1, 2);//只有第三個用默認(rèn)的,半缺省
Test(1,2,3);//都不用默認(rèn)的,不缺省
return 0;
}2. 缺省參數(shù)不能在函數(shù)聲明和定義中同時出現(xiàn),聲明和定義分離的話,必須在聲明的時候給
因?yàn)槿绻蛛x了,在編譯階段,兩個.cpp并沒有鏈接在一起,只有鏈接階段才會鏈接在一起,那么,如果是定義給了,聲明沒給,在調(diào)用函數(shù)的那個.cpp文件里包含了頭文件,里面有有函數(shù)的聲明,但是沒有函數(shù)的定義,函數(shù)的聲明里有參數(shù),但是如果你想使用缺省參數(shù),由于聲明沒給缺省參數(shù),就會出現(xiàn),這個函數(shù)有參數(shù),你需要傳參數(shù)進(jìn)去,但是由于你想使用缺省參數(shù)而沒傳參數(shù),就會出現(xiàn)錯誤因而報錯
//a.h
void TestFunc(int a = 10);
// a.c
void TestFunc(int a = 20)
{}
// 注意:如果聲明與定義位置同時出現(xiàn),恰巧兩個位置提供的值不同
//那編譯器就無法確定到底該用哪個缺省值。3. 缺省值必須是常量或者全局變量
4. C語言不支持(編譯器不支持)
到此這篇關(guān)于C++淺析缺省參數(shù)的使用的文章就介紹到這了,更多相關(guān)C++ 缺省參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一起來學(xué)習(xí)C語言的字符串轉(zhuǎn)換函數(shù)
這篇文章主要為大家詳細(xì)介紹了C語言的字符串轉(zhuǎn)換函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-02-02
利用C++模擬實(shí)現(xiàn)STL容器:list
列表是一種順序容器,它允許在序列中的任何位置執(zhí)行常量時間插入和刪除操作,并允許在兩個方向上進(jìn)行迭代。本文將利用C++模擬實(shí)現(xiàn)list,希望對大家有所幫助2022-12-12
vscode 配置 C/C++ 編譯環(huán)境的詳細(xì)圖文教程
這篇文章主要介紹了vscode 配置 C/C++ 編譯環(huán)境的詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
C語言完整實(shí)現(xiàn)12種排序算法(小結(jié))
本文主要介紹了C語言完整實(shí)現(xiàn)12種排序算法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05

