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

關於默認實參,默認實參

編輯:C++入門知識

關於默認實參,默認實參


定義了一個函數f(const string &str, long pos, long count = -1)

{

    //do something

}

而在使用時卻發生了錯誤

int main()

{

    string str;

    long pos = 1;

    f(str, pos);

}

提示信息為

錯誤 1 error C2664: “string &string::f(const string &,long,long)”: 無法將參數 1 從“string”轉換為“long” c:\users\wlp\源.cpp 8 1 string

查閱書籍發現原因

“既可以在函數聲明中也可以在函數定義中指定默認實參,但是在一個文件中,只能為一個形參指定默認實參一次;二是:如果在函數定義的形參表中提供默認實參,那麼只有在包含該函數定義的源文件中調用該函數時,默認實參才是有效的”

我在一個文件中定義了f(),但是在另一個文件中調用,所以無法使用默認實參

 

默認實參可以在聲明中指定,也可以在定義中指定,但是推薦在聲明中將默認參數給出,在定義中不再給出,因為函數聲明一般在頭文件,這樣包含該頭文件的文件都可以使用該默認實參,否則只有一個文件可以使用。

 

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