C++中函數的默許參數具體解析。本站提示廣大學習愛好者:(C++中函數的默許參數具體解析)文章只能為提供參考,不一定能成為您想要的結果。以下是C++中函數的默許參數具體解析正文
應用辦法:
(1)在函數聲明或界說時,直接對參數賦值,該參數就是默許參數。
(2)在函數挪用時,省略部門或全體參數,這時候就會應用默許參數停止取代。
留意事項:
(1)普通在聲明函數是設置默許參數。
假如在函數聲明和界說函數時都設置了默許參數,則以函數聲明的默許參數為准。
#include<iostream>
using namespace std;
int main()
{
double add(double a=3.2,double b=9.6);//在函數聲明時設置默許參數
cout<<add()<<endl; //應用默許參數
return 0;
}
double add(double a=3.2,double b=9.5)//在界說函數時設置默許參數
{
return a+b;
}
運轉成果:
(2)默許參數的界說次序是自右向左。
即假如設置了一個缺省值,其左邊的參數也應當設定一個缺省值。
即:
<pre name="code" class="cpp">int add(int a,int b=1,int c=1);</pre>
如許做是准確的。
而:
int add(int a=1,int b,int c);
如許做是毛病的。
如許做是由於實參傳給體系以後,體系會自左向右與形參停止婚配。
假如函數時add(1,2),那末a=1,b=2,c等於若干呢?我們只要把參數全體傳遞曩昔以後,體系能力取得c的值,但如許做的話,為何還要設置函數的默許參數呢?
所以編譯體系不許可法式員這麼做,由於這麼做是毫有意義的。
(3)默許參數的挪用次序是自左向右。
我們在應用函數的時刻,實參必需是由左自右書寫的。
/*准確的用法*/
add(1,2,3);//傳遞三個參數的值
add(1,2);//傳遞兩個參數的值
add(1);//傳遞一個參數的值
add();//不傳遞參數的值
/*毛病的用法*/
add(,2,3);//不克不及省略失落右邊的參數的值,應當右左向右傳值
毛病的提醒: