函数模板的语法规则 template关键字用于声明开始进行泛型编程typename关键字用于声明泛指类型 template <typename T> //template:告诉编译器开始泛型编程 <typename T>告诉编译器T是一个泛指类型 void Swap(T& a,T& b) { T t = b; a = b; b = t; } 函数模板的使用 自动类型推导的调用具体类型显示调用 int a = 0; int b = 1; Swap(a,b); //自动调用 float c = 2; float d = 3; Swap<float>(c,d); //显示调用 C++中的类模板 以相同的方式处理不同的类型在类声明前使用template进行标识< typename T>用于说明类中使用的泛指类型T template <typename T> class Op { public: T o(T a, T b); }; 类模板的应用 只能显示指定具体类型,无法自动推导使用具体类型< type >定义对象 Operation < int > op1; Operator< double > op2; int i = op1.op(1,2); double d = op2.op(0.01,0.02);