在《C++ 编程思想》:“关于无参函数声明,C与C++有很大的差别。在C语言中,声明int fun1(),意味着一个可以有任意数目和类型的函数;而在C++中,指的却是一个没有参数的函数”。
下面是一个C语言的函数和C++的函数验证了这段话
# include<stdio.h> int fun1(); int main() { int a = fun1(3, 4); printf("%d ", a); return 0; } int fun1(int a, int b) { return a + b; }
结果没有任何问题,输出结果为7,也即fun()可以声明fun(int, int)
# include<iostream> using namespace std; int fun1(); int main() { int a = fun1(3, 4); cout << a << endl; return 0; } int fun1(int a, int b) { return a + b; }
编译出错,“fun1”: 函数不接受 2 个参数。说明在C++中 fun()不可以声明fun(int, int)