c++ - 标头中声明的函数可以在一个项目中的不同源文件中具有多个定义吗?
问题描述
我今天有一个面试,小组成员问了我这个问题。我说编译器会抛出一个错误,说明函数的多个声明。他说它可能使用OOPS。
有谁可以帮我离开这里吗。
解决方案
这称为函数重载。这意味着拥有多个同名但参数不同的函数。这是OOPS中的一个概念。让我们通过一个例子来学习它。假设您需要创建一个exit()
函数。假设您需要一个exit
接收退出消息 ( const char *
) 的函数和另一个只接收退出代码 ( int
) 的函数。在 C++ 中,您可以执行以下操作:
void my_exit(char *_Msg);
void my_exit(int);
但是,不允许使用模棱两可的参数类型。考虑以下:
void print_decimal(double);
void print_decimal(float);
这将产生错误,因为类似的数字12.5
既可以表示为浮点数也可以表示为双精度数(这会使编译器感到困惑)。
(如果我犯了错误,请告诉我,祝你有美好的一天!)
推荐阅读
- .net - 在 .NET 中,您可以设置对象的 GC 生成,或者以其他方式指示它即将超出范围吗?
- c# - Razor 页面模型绑定错误上的 SelectList
- python - 我想挑选一列 DataFrame 但结果自动按值排序
- scala - Scala 是否保证存在隐含时的连贯性?
- sql - 如何通过 select 语句中的 id 从另一个表中选择?
- java - SpringBoot oracle.jdbc.OracleDatabaseException:ORA-00932:不一致的数据类型:预期的 DATE 得到了 NUMBER
- python - 如果用户不输入任何内容,则尝试使函数循环并中断
- lua - 卢阿!没想到
- javascript - 尝试在 .Net Core Razor 页面中使用 babel 生成的代码
- visual-studio - 在自定义 MSBuild 任务中更改参考没有预期效果