C++之默認(rèn)參數(shù)詳解
一、C++ 默認(rèn)參數(shù)
通常情況下,函數(shù)在調(diào)用時,形參從實參那里取得值。對于多次調(diào)用同一函數(shù)同一實參時,C++給出了更簡單的處理辦法。給形參以默認(rèn)值,這樣就不用從實參那里取值了。
1.舉例
1.單個參數(shù)
#include <iostream> #include <ctime> using namespace std; void weatherForcast(char * w="sunny") { time_t t = time(0); char tmp[64]; strftime(tmp,sizeof(tmp), "%Y/%m/%d %X %A ",localtime(&t) ); cout<<tmp<< "today is weahter "<<w<<endl; } int main() { //sunny windy cloudy foggy rainy weatherForcast(); weatherForcast("rainny"); weatherForcast(); return 0; }
2.多個參數(shù)
#include <iostream> using namespace std; float volume(float length, float weight = 4,float high = 5) { return length*weight*high; } int main() { float v = volume(10); float v1 = volume(10,20); float v2 = volume(10,20,30); cout<<v<<endl; cout<<v1<<endl; cout<<v2<<endl; return 0; }
2.規(guī)則
1.規(guī)定默認(rèn)參數(shù)必須從函數(shù)參數(shù)的右邊向左邊使用
正確聲明: void fun1(int a, int b=10); void fun2(int a, int b=10, int c=20); 錯誤聲明: void fun3(int a=5, int b, int c); void fun4(int a, int b=5, int c);
2.默認(rèn)參數(shù)不能在聲明和定義中同時出現(xiàn)
錯誤 聲明: void fun1(int a=10); 定義: void fun1(int a=10){......} 正確 聲明: void fun2(int a=10); 定義: void fun2(int a){......} 或者 聲明: void fun2(int a); 定義: void fun2(int a=10){......}
3.函數(shù)聲明和定義一體時,默認(rèn)參數(shù)在定義或聲明處都可以。聲明在前,定義在后的話,默認(rèn)參數(shù)在聲明處
4.一個函數(shù),不能又作重載,又作默認(rèn)參數(shù)的函數(shù)。當(dāng)你少寫一個參數(shù)時,系統(tǒng)無法確認(rèn)時重載還是默認(rèn)函數(shù)。
void print(int a) { } void print(int a,int b =10) { } int main() { print(10); return 0; } error:main.cpp:14: error: call of overloaded 'print(int)' is ambiguous print(10);
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C語言 哈希查找詳解(哈希表的創(chuàng)建、處理沖突、查找等)
哈希表是一種非常重要的數(shù)據(jù)結(jié)構(gòu),并在大量的計算機(jī)科學(xué)和工程應(yīng)用中發(fā)揮重要作用,了解哈希表的原理和實現(xiàn)方式,將有助于我們更好地理解這個數(shù)據(jù)結(jié)構(gòu)及如何應(yīng)用它來解決實際問題,這篇文章主要介紹了C語言 哈希查找(哈希表的創(chuàng)建、處理沖突、查找等),需要的朋友可以參考下2024-01-01Qt利用QState狀態(tài)機(jī)實現(xiàn)控件互斥操作詳解
這篇文章主要為大家詳細(xì)介紹了Qt如何利用QState狀態(tài)機(jī)實現(xiàn)控件互斥操作,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-12-12c++結(jié)合opencv如何實現(xiàn)讀取多張圖片并顯示
這篇文章主要介紹了c++結(jié)合opencv如何實現(xiàn)讀取多張圖片并顯示問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11