重載函數的調用匹配規則


重載函數的調用匹配,依次按照下列規則來判斷:

         精確匹配:參數匹配而不做轉換,或者只是做微不足道的轉換,如數組名到指針、函數名到指向函數的指針、T到const T;

         提升匹配:即整數提升(如bool到int、char到int、short到int),float到double;

         使用標准轉換匹配:如int到double、double到int、double到long double、Derived*到Base*、T*到void*、int到unsigned int;

         使用用戶自定義匹配;

         使用省略號匹配:類似於printf中省略號參數。

假如運行環境int類型4bytes,short類型2bytes,long類型8bytes,存在代碼:
    unsigned short x = 65530;
    int a = myfunc( x, 20.0 );
會優先匹配以下哪一個重載函數?
A. int myfunc( double, double ) 
B. int myfunc( short, double )
C. double myfunc( int, float )
D. double myfunc( int, double)

答案為D!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM