#include <iostream>
using namespace std;
void func()
{
cout << "无形参版本" << endl;
}
void func(int a)
{
cout << "整形形参版本" << endl;
cout << "a is " << a << endl;
}
// void func(int) {} //error,与整形实参版本冲突
void func(int a, int)
{
cout << "整形,整形占位形参版本" << endl;
cout << "a is " << a << endl;
}
int main()
{
//调用
func(1,2);
func();
//根据C++的函数匹配机制,虽然整形,整形占位形参版本和这个调用也匹配
//但是,最匹配的还是整形形参版本
func(3);
return 0;
}
对于占位形参函数的调用
#include <iostream>
using namespace std;
void func(int a, int)
{
cout << "整形,整形占位形参版本" << endl;
cout << "a is " << a << endl;
}
int main()
{
//调用
//func(3); //error
func(3,4); //OK
return 0;
}
或者加上一个默认参数
#include <iostream>
using namespace std;
void func(int a, int=0)
{
cout << "整形,整形占位形参版本" << endl;
cout << "a is " << a << endl;
}
int main()
{
//调用
//func(3); //error
func(3); //OK
return 0;
}