要从一组重载函数中找到应实际调用的那个正确版本,就需要找到实参和形参的最好匹配。一般遵循下面一些列的判断准则:
(1)准确匹配。也就是说无须任何转换或者只进行平凡转换的匹配。(平凡转换:从数组名到指针,从函数名到函数指针,从T到const T之类的)
(2)利用提升的匹配。比如整数提升(从bool到int,从char到int,shot到int之类)或者从float到double的提升。
(3)利用标准转换的匹配。例如:int到double,double到int,double到long double,derived*到base*,T*到void*之类。
(4)利用用户定义的转换的匹配。
(5)利用在函数声明中用到的...的匹配。
如果能在找到匹配的某个最高的层次上同时发现了两个匹配,这个调用将被作为歧义而被拒绝。
posted on 2007-01-24 11:47
探丫头 阅读(1070)
评论(1) 编辑 收藏 引用 所属分类:
编程语言——C++