c++编译器如何处理这些基本的和类似的函数

How C++ compiler handles these basic and similar functions

本文关键字:函数 何处理 编译器 处理 c++      更新时间:2023-10-16

我正在复习一门课的期末练习,有一个问题是-

编译器将如何处理以下每个调用?假设max在代码中的其他任何地方都没有被引用。

(a) max(3,7)

(b) max(3.0, 7.0)

(c) max(3,7.0)

我对编译器的东西完全不了解,我研究的东西远远超出了这一点,所以任何帮助都是感激的。

编译器将根据传递的参数值从重载中找到最适合的方法。如果没有找到,将弹出错误。例如,在调用max(3,6)时,由于两个参数都是int类型,如果存在一个名为max的方法,该方法接受该参数,则编译器将调用该方法。如果没有,并且如果有一个方法接受传递值可以转换的参数(例如max(double,double))),那么它将被调用,因为int隐式转换double。如果不存在这样的方法,则出现错误。学习函数重载