有传递普通函数和调用模板函数的方法吗?

  • 本文关键字:函数 方法 调用 c++
  • 更新时间 :
  • 英文 :

#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);

最新更新