#include<iostream>
using namespace std;
template<class T>
void f(T &i)
{
cout<<"1";
}
void f(const int&i)
{
cout<<"2";
}
int main()
{
f(7);
}
我使用了模板功能和普通功能。但是带有const int参数的函数在被调用时正在执行。为什么会这样?
答案 0 :(得分:0)
当您的代码正在编译时,取决于参数的类型和参数的数量,编译器将找到最相关的函数来响应函数调用f(7)
,然后再转到Template
函数。在这种情况下,最相关的函数是void f(const int&i)
,所以你得到2作为输出。