【发布时间】:2012-04-24 03:35:39
【问题描述】:
在以下代码中,主函数使用普通函数而不是模板函数。
#include <iostream>
using namespace std;
template <class T>
void num(T t){cout<<"T : "<<t;}
void num(int a){cout<<"wT : "<<a;}
int main()
{
num(5);
return 0;
}
这背后的可能原因是什么?
【问题讨论】:
-
首先选择函数最佳匹配参数。
-
@Anycorn:在c++中,默认选择第一个普通函数吗?
-
让我澄清一下 - 如果一个普通函数匹配 type,它将被选中。例如,如果它是
num(char a),则会选择模板。 -
我之前问过类似的问题:stackoverflow.com/questions/3431735/…
标签: c++ templates overloading