前言
前面我们讲到了《函数重载》,有了函数重载之后,就需要确定某次调用需要选用哪个函数。这个过程可以称之为函数匹配或者重载确定。大多数情况下,我们都很容易能够确定某次调用需要选用哪个函数,但事实上不尽然。但通过本文将彻底理清重载函数匹配
匹配过程
为便于说明,将函数匹配分为三个阶段,确定候选函数,确定可行函数,确定最佳匹配函数。
确定候选函数
候选函数也就是和被调用的函数同名,并且其声明在调用点可见。举个简单的例子。
假设有两个文件,1.cpp和2.cpp,内容分别如下:
1.cpp:
//函数1
void f(int a,short b)
{
cout<<"func0"<<endl;
}
2.cpp:
#include<iostream>
using namespace std;
//函数2
void f(int a,double b)
{
cout<<"func1"<<endl;
}
//函数3
void f(int a, int b)
{
cout<< "func2"<<endl;
}
//函数4
void f1()
{
cout<<"func3"<<endl;
}
int main()
{
f(3,4.5);