c++编译器如何处理这些基本的和类似的函数
How C++ compiler handles these basic and similar functions
我正在复习一门课的期末练习,有一个问题是-
编译器将如何处理以下每个调用?假设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
。如果不存在这样的方法,则出现错误。学习函数重载
相关文章:
- 函数何时会在c++中包含stack_Unwind_Resume调用
- std::string 构造函数如何处理固定大小的 char[]?
- 模板函数如何处理可能共享一个交集的多个类型名称?
- 为什么这个噪声函数不处理否定参数?
- 在线程函数中处理数据向量时进行线程竞速
- 是否有任何内置的哈希图函数来处理 c++ 中的值输入?
- 在析构函数内部处理异常(但不抛出)
- 套接字 read() 函数在处理隧道时有时从不返回 0
- 如何编写移动构造函数以处理非初始化的移动
- 通过函数来处理内存 - 这是正确的
- 如何在将指针传递给库函数时处理内存管理
- 如何使用unique_ptr声明调用构造函数并处理程序终止信号
- 如何使用通用模板函数来处理不同成员的对象?
- 我如何有boost.python调用一个函数来处理对象
- 将 WndProc 替换为另一个函数来处理消息
- 如何使用move构造函数正确处理shared_ptr的映射
- 获取 std::vector 的大小(通过扩展专门使用参数类型的可变参数模板函数来处理参数)
- C++堆栈对象的构造函数异常处理
- C++ - 如何添加函数以处理货币计算器的多种情况
- 在 Matlab 中调用C++函数,处理二维数组,指针指针