#include<iostream>
using namespace std;
template<class T>
void display(T a){
a += a;
cout << "Template Function: " << a << endl;
}
template <class T1, class T2>
void display(T1 a, T2 b){
cout << "a: " << a << endl << "b: " << b << endl;
}
void display(int x){
cout << "Ordinary Function: " << x << endl;
}
int main(){
display(1); // this will call ordinary function
display(1.2);
display('T');
display(1, 2);
display('A', 'B');
display(2.1, 2.1);
return 0;
}
在上面的c++代码中,在display(1)
函数调用时调用普通函数。是否有任何方法,我可以调用模板函数而不是普通函数?
你可以这样称呼它:
display<int>(1);
调用模板函数的语法为:
functionName<dataType>(arg1, arg2, ...);
默认情况下,如果找到完全匹配的普通函数,编译器将调用同名的普通函数。在这个例子中是void display(int x)
。如果你想调用模板函数,而不是它的普通版本,你需要准确地调用它的调用方式:
display<int>(1);