重载函数间的匹配规则

  摘自《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】利用在函数声明中的省略号...的匹配。

posted @ 2012-04-15 20:26  mywe  阅读(341)  评论(0编辑  收藏  举报