摘自《The C++ Programming Language》 Bjarne Stroustrup
要从一集重载的函数中找到应实际调用的那个正确版本,就需要找到在参数表达式的类型和函数的(形式)参数类型之间的最好匹配。则需要按顺序检查下面的一系列判断准则:
【1】准确匹配;也就是说,无须任何转换或者只须做平凡转换(例如,数组名到指针,函数名到函数指针,T到const T等)的匹配
【2】利用提升的匹配;即包括整数提升(bool到int, char到int,short到int以及它们的无符号版本)以及从float到double的提升。
【3】利用标准转换(例如,int到double,double到int,double到long double, Derived*到Base*),T*到void*。
【4】利用用户定义转换的匹配
【5】利用在函数声明中的省略号...的匹配。