当前位置: 首页 > 知识库问答 >
问题:

C函数重载,具体步骤是什么

燕富
2023-03-14

我正在阅读有关函数重载的内容,发现了以下内容:

编译器列出所有具有相同名称和相同参数数的函数,然后开始按固定顺序使用以下规则查找函数,并在存在匹配项时停止。

1) 一个函数,其参数类型与对其的调用完全相同。

2) 布尔-

3) 整数-

例如:

void foo(int x)
{
    return;
}

foo(True);//will trigger step 2.

有人能详细说明数字2和3吗?并添加完整列表?

共有1个答案

吕骞尧
2023-03-14

1) 一个函数,其参数类型与对其的调用完全相同

因此,如果我试图调用foo(1),它将首先尝试找到任何名为foo的函数,该函数接受一个int类型的参数。

2) 布尔-

所以如果我做了foo(True)并且它在步骤1中没有找到任何东西,它会尝试将True转换为int并再次执行步骤1)

3) 整数-

如果2)步骤没有找到任何合适的函数,它将尝试将任何int参数转换为double,依此类推。

 类似资料:
  • 问题内容: 在PHP中,函数重载和函数覆盖是什么意思。两者之间有什么区别?无法弄清楚它们之间有什么区别。 问题答案: 重载 定义的函数具有相似的签名,但具有不同的参数。 覆盖 仅与派生类相关,派生类中的父类已定义了一个方法,而派生类希望 覆盖 该方法。 在PHP中,您只能使用magic方法重载方法。 覆盖 的示例:

  • 我遵循了本教程并利用这个github项目编写了一个简单的'mysum'UDF函数。 我按照下面的步骤插入UDF,但Presto未能导入该函数。由于关于编写和插入UDF的文档很少,因此非常感谢任何帮助。提前道谢。 运行和 将文件复制到presto(解压缩)目录下的plugins文件夹中 在Presto CLI中使用运行启动协调器,但抛出错误 下面是当我尝试在Presto cli中运行我的UDF(“m

  • 主要内容:C++ 是如何做到函数重载的在实际开发中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。例如希望交换两个变量的值,这两个变量有多种类型,可以是 int、float、char、bool 等,我们需要通过参数把变量的地址传入函数内部。在C语言中,程序员往往需要分别设计出三个不同名的函数,其函数原型与下面类似: 但在 C++中,这完全没有必要。C++ 允许多个函数拥有相同的名字,只要它们的参数列表不同就可以,这就是 函数

  • 本文向大家介绍pycharm导入源码的具体步骤,包括了pycharm导入源码的具体步骤的使用技巧和注意事项,需要的朋友参考一下 pycharm导入源码的方法: 1、打开pycharm,依次点击File、Settings选项; 2、点击打开Project Structure选项; 3、点击Add Content Root选项,根据需要添加源码文件路径即可。 具体方法: 首先选中File选项卡,点击S

  • 本文向大家介绍Nginx 配置过程的具体步骤,包括了Nginx 配置过程的具体步骤的使用技巧和注意事项,需要的朋友参考一下 Nginx 配置过程 一、下载 Nginx 二、解压 三、配置 下载 RunHiddenConsole.exe 软件 四、开启: 五、关闭: 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。 重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。 当您调用一个重载函数或重载运算符时,编译器通过把您所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。选择最合适的重载函数或重载运算符的过程,称为重载决策。 C++ 中的函数重载