81-函数原型
B.9.1 函数原型
在C++中,函数原型必不可少,但是在C中是可选的。这一区别在声明一个函数时让函数名后面的圆括号为空,就可以看出来。在C中,空圆括号说明这是前置原型,但是在C++中则说明该函数没有参数。也就是说,在C++中, int slice(); 和 int slice(void); 相同。例如,下面旧风格的代码在C中可以接受,但是在C++中会产生错误:
int slice();
int main()
{
...
slice(20, 50);
...
}
int slice(int a, int b)
{
...
}
在C中,编译器假定用户使用旧风格声明函数。在C++中,编译器假定 slice() 与 slice(void) 相同,且未声明 slice(int, int) 函数。
另外,C++允许用户声明多个同名函数,只要它们的参数列表不同即可。