首页 > 解决方案 > 标头中声明的函数可以在一个项目中的不同源文件中具有多个定义吗?

问题描述

我今天有一个面试,小组成员问了我这个问题。我说编译器会抛出一个错误,说明函数的多个声明。他说它可能使用OOPS。

有谁可以帮我离开这里吗。

标签: c++coopone-definition-rule

解决方案


这称为函数重载。这意味着拥有多个同名但参数不同的函数。这是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既可以表示为浮点数也可以表示为双精度数(这会使编译器感到困惑)。

(如果我犯了错误,请告诉我,祝你有美好的一天!)


推荐阅读