程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++中函數的默許參數具體解析

C++中函數的默許參數具體解析

編輯:關於C++

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);//不克不及省略失落右邊的參數的值,應當右左向右傳值

毛病的提醒:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved