1。int Add (int a, int b = 3);int Add (int a, int b){}2。int Add (int a, int b);int Add (int a, int b = 3){}兩者都起作用;這是標準方法,為什么?
3 回答

德瑪西亞99
TA貢獻1770條經驗 獲得超3個贊
如果將聲明放在頭文件中,將定義放在單獨的.cpp文件中,并將#include頭放在其他.cpp文件中,則可以看到不同之處。
具體來說,假設:
庫
int Add(int a, int b);
庫文件
int Add(int a, int b = 3) {
...
}
測試文件
#include "lib.h"
int main() {
Add(4);
}
的編譯test.cpp將看不到默認參數聲明,并且將失敗并顯示錯誤。
因此,通常在函數聲明中指定默認參數定義:
庫
int Add(int a, int b = 3);

犯罪嫌疑人X
TA貢獻2080條經驗 獲得超4個贊
第一種方法比第二種方法更可取。
這是因為頭文件將顯示該參數是可選的,以及其默認值是什么。此外,無論相應的.cpp文件如何實現,這都將確保默認值相同。
在第二種方式中,不能保證第二個參數的默認值。默認值可能會更改,具體取決于相應的.cpp文件的實現方式。
- 3 回答
- 0 關注
- 404 瀏覽
添加回答
舉報
0/150
提交
取消