可以的,实现时只实现一次就可以了。
#include <iostream>
using namespace std;
void func(int a, int b);
void func(int a, int b);
int main()
{
func(1, 2);
return 0;
}
void func(int a, int b)
{
cout << a << endl;
cout << b << endl;
}
那么,函数名相同,参数个数不同是否可以呢?
C++可以,C不可以
#include <iostream>
using namespace std;
void func(int a, int b);
void func(int a, int b, int c);
int main()
{
func(1, 2, 3);
int i;
cin >> i;
return 0;
}
void func(int a, int b)
{
cout << a << endl;
cout << b << endl;
}
void func(int a, int b, int c)
{
cout << a << endl;
cout << b << endl;
cout << c << endl;
}
按照上述的方法,两个func函数是按照C++的环境编译,接口会生成类似func_int_int和func_int_int_int的形式,所以在调用时,可以根据参数个数进行区分,应该调用哪个函数。
还是以上述的代码为例,将两个func编译时,按照C环境编译。修改后的代码如下:
#include <iostream>
using namespace std;
extern "C" {
void func(int a, int b);
void func(int a, int b, int c);
}
int main()
{
func(1, 2, 3);
int i;
cin >> i;
return 0;
}
void func(int a, int b)
{
cout << a << endl;
cout << b << endl;
}
void func(int a, int b, int c)
{
cout << a << endl;
cout << b << endl;
cout << c << endl;
}
按照这个样子编写,编译时报错,如下图所示