代码之家  ›  专栏  ›  技术社区  ›  Adam Ramadhan

了解函数原型和函数重载

  •  -3
  • Adam Ramadhan  · 技术社区  · 15 年前

    有人能给我一个用4个函数原型在c++中重载函数的例子吗?我还是不太明白。。

    抱歉,新来的问题,谢谢收看。

    亚当·拉马丹

    1 回复  |  直到 15 年前
        1
  •  3
  •   Amardeep AC9MF    15 年前

    下面是C++函数声明,通常会在头(.h或.HPP)文件中。这些特定声明没有代码。代码在下面进一步显示的定义中。

    int sum(int a, int b);
    int sum(int a, int b, int c);
    int sum(int a, int b, int c, int d);
    int sum(int a, int b, int c, int d, int e);
    

    上述四个函数具有相同的名称,但C++编译器将调用参数签名与调用代码中的一个匹配的函数。声明的目的是告诉编译器函数的返回类型和参数签名是什么。如果多个函数具有相同的名称,但其参数签名不同,则称为重载。这是C++中不存在的C++特性。注意返回类型不能用于区分重载函数。

    以下是重载函数的定义(实现),通常位于模块(.cpp或.cc或.cxx)文件中。这是可执行代码位于函数块周围的大括号{}之间的位置:

    int sum(int a, int b)
    {
        return (a + b);
    }
    
    int sum(int a, int b, int c)
    {
        return (a + b + c);
    }
    
    int sum(int a, int b, int c, int d)
    {
        return (a + b + c + d);
    }
    
    int sum(int a, int b, int c, int d, int e)
    {
        return (a + b + c + d + e);
    }
    

    用法示例:

    std::cout << sum(3, 4, 5) << std::endl;
    

    将调用上面列出的第二个重载函数的代码,该函数需要三个 int 参数。