说明C ++中的函数重载解决方案和函数重载类型

如果您没有阅读有关函数重载的信息,我建议您在阅读本文之前,先阅读C ++函数重载。

函数重载解析

当我们调用重载函数时,要执行哪个函数的决定称为函数重载解析。我们不能基于返回类型重载函数。这意味着函数重载解析是在仅签名的基础上完成的。

有以下用于函数重载解决方案的条件:

  • 函数调用完全匹配或仅使用转换进行匹配。示例数组名称指向指针,函数名称指向函数指针。

  • 使用促销的函数调用匹配:

    • 提升整数数据类型:bool→char→short→int→long int

    • 浮点型促销:浮点型→双精度型→长双精度型

  • 使用标准转换的函数调用匹配:

    • 派生*→基数*

    • 数据类型*→无效*

    • 标准数据类型的转换:整数→浮点型

    • 转换阶层:

  • 函数调用在用户定义转换的帮助下进行匹配。

注意:当同时找到两个函数调用匹配项时,该调用将被拒绝,称为歧义调用。

函数重载类型

有多种方法可以使函数重载:

  1. 参数数量不同

  2. 不同类型的参数

  3. 不同顺序的参数

  4. 不同数量和类型的参数

1)不同数量的参数

我们可以借助参数数量来重载函数,函数中的参数可以为0,1和多个。

示例

void print();
void print(char ch);
void print(char ch, int num);

2)不同类型的参数

我们可以根据不同类型的参数重载函数。这意味着每个函数都有不同数据类型的参数。

示例

void printval(int val);
void printval(char val);
void printval(float val);

3)不同的参数顺序

我们可以根据参数的顺序重载函数。

示例

void printChar(int num, char ch);
void printChar(char ch, int num);

4)不同数量和类型的参数

我们还可以结合以上类型的函数重载。。