有如下函數模板定義: templateT2plus(T1t1,T3t3){returnt1+t3;} 則以下調用正確的是( )。
有如下函數模板定義: templateT2plus(T1t1,T3t3){returnt1+t3;} 則以下調用正確的是( )。
A.plus(3,5L);
B.plus(3,5L);
C.plus(3,5L);
D.plus(3,5L);
正確答案:DD。【解析】C++中對函數模板的調用有時候只使用了函數實參,而沒有使用模板實參,模板實參都被省略了,但模板實參的省略并不是必然的,而是有條件的:從模板函數實參表獲得的信息有矛盾;需要蕕得特定類型的返回值,而不管參數的類型如何;虛擬類型參數不出現在模板函數的形參中;函數模板含有常規形參。題中定義的函數模板中虛擬類型參數T2沒有出現在模板數的形參列表中,所以在調用時不能省略,D選項的調用省略了T3,這是允許的。
詞條內容僅供參考,如果您需要解決具體問題
(尤其在法律、醫學等領域),建議您咨詢相關領域專業人士。