2017-04-24 113 views
0

我正在調試這個函數,它是用三個參數聲明的,但實際上傳入了兩個,是允許的還是它沒有直接調用它?如何在C++中傳遞參數?

ConfigList filter(
     const BidRequest& br, 
     const ExchangeConnector* conn, 
     const ConfigSet& mask = ConfigSet(true)); 

這裏是調用:

auto biddableConfigs = filters.filter(*auction->request, exchangeConnector); 

我試圖打印出過濾器內部的東西,它打印出一條線,一個名字,之前沒有兩行。

出了什麼問題?

感謝, Oneofkind

+2

http://en.cppreference.com/w/cpp/language/default_arguments – aschepler

+0

第三個參數有一個默認參數,在調用站點沒有提供其他參數時使用。 –

回答

1

它的確定,只有2個參數使用它,在函數聲明中的第三個參數是const ConfigSet& mask = ConfigSet(true),這意味着它的時候,你不送將使用默認值第三個參數。