学习函数原型和函数重载

时间:2010-10-19 19:02:39

标签: c++ overloading function-prototypes

有人能给我一个带有4个函数原型的c ++函数重载的例子吗?我仍然没有让他们相当好..

抱歉新手问题,谢谢你的回复。

Adam Ramadhan

1 个答案:

答案 0 :(得分:3)

以下是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个参数。

相关问题