很简单,就是把同名函数组成一个集合,叫做可选函数集。如果什么条件都满足那就最好了,最差的情况也就是存在隐式转换而已。如果连隐式转换都不需要的话,那就是最合适的了。
其中,精确匹配是最好的选择。
这个策略是有优先级的,从好到坏依次如下所示:
1、精确匹配;
2、类型的提升,比如说整形转换成整形,而不损失精度。比如把char转换成int,因为char本身就是以int的形式进行存储的;
3、标准转换。这种一般是跨类型的转换,比如长整型转换成双精度型;
4、显式转换,即强制类型转换。
另外,这个精确匹配和最佳匹配并不是一回事。最佳匹配一定是精确匹配,但是精确匹配不一定是最佳匹配。这是为什么呢?这是因为形参只要类型匹配就是精确匹配了,但是同一类型有各种形式的形参,比如该类型的引用,指针等。但是一定要明白最佳的函数一定是只有一个,不然就会出现调用不明确的错误。