模板函数
function template将参数列表中的部分或全部参数的类型信息抽离出来,实际使用时的类型信息由用户提供——当他决定采用function template的某个实例时提供
template其后紧跟着的成对尖括号<>
包围起来的一个或多个标识符,是用来表示我们希望提供推迟决定的数据类型,用户每次利用这一模板(template)产生函数,都必须提供确实的类型信息。 这些标识符事实上扮演着占位符的角色, 用来放置函数参数列表及函数体中的某些实际数据类型。
#include <iostream>
using namespace std;
template<typename elementType> void MyPrint(elementType element)
{
cout << element << "\n";
}
int main() {
//cout << "test\n";
MyPrint(123);
MyPrint(123.0f);
MyPrint("123");
return 0;
}
编译MyPrint(123);
时,编译器会将elementType绑定为int类型,然后产生一份MyPrint
函数实例,第一个参数element的类型变为int,函数体内的局部对象element的类型也变为了int
模板类
参考: