编译器在链接函数时,会尝试找到与函数调用匹配的函数定义。匹配的过程取决于函数的签名(函数名称、参数类型和返回类型)。如果存在多个具有相同名称的函数定义,则根据所使用的链接器不同,选择不同的匹配方式。
以下是C++中函数匹配的几种方式:
示例代码如下:
#include
using namespace std;
void func(int a) { cout << "int: " << a << endl; }
void func(double a) { cout << "double: " << a << endl; }
int main() {
func(1); // 调用 func(int)
func(1.0); // 调用 func(double)
return 0;
}
输出结果:
int: 1
double: 1
在上面的示例代码中,func函数名相同但参数列表不同,根据实参的类型编译器能够自动匹配到合适的函数,即匹配第1个和第2个func函数。
下一篇:编译器如何引用自己的输出