【发布时间】:2018-06-06 04:41:17
【问题描述】:
#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 参数的函数在调用时正在执行。为什么会这样?
【问题讨论】:
-
函数模板不起作用,因为 7 无法绑定到非常量引用。
-
也相关,因为即使签名是
void f(T i)和void f(const int& i),输出仍然是2:stackoverflow.com/questions/14666219/… -
如果我给 const T&i 会怎样
-
因为 7 是文字,所以是常数?
标签: c++