编译器从可选函数集中选择目标函数的策略

很简单,就是把同名函数组成一个集合,叫做可选函数集。如果什么条件都满足那就最好了,最差的情况也就是存在隐式转换而已。如果连隐式转换都不需要的话,那就是最合适的了。

其中,精确匹配是最好的选择。

这个策略是有优先级的,从好到坏依次如下所示:

1、精确匹配;

2、类型的提升,比如说整形转换成整形,而不损失精度。比如把char转换成int,因为char本身就是以int的形式进行存储的;

3、标准转换。这种一般是跨类型的转换,比如长整型转换成双精度型;

4、显式转换,即强制类型转换。

另外,这个精确匹配和最佳匹配并不是一回事。最佳匹配一定是精确匹配,但是精确匹配不一定是最佳匹配。这是为什么呢?这是因为形参只要类型匹配就是精确匹配了,但是同一类型有各种形式的形参,比如该类型的引用,指针等。但是一定要明白最佳的函数一定是只有一个,不然就会出现调用不明确的错误。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容