模板是实现代码重用机制的一种工具,实质就是实现类型参数化,即把类型定义为参数。
C++提供两种模板:函数模板,类模板
函数模板
template <typename T> T myMax(T a, T b) { return a>b?a:b; }
调用
//函数
char max1 = myMax<char>('a','b');
cout<<"myMax:"<<max1<<endl;
类模板
template <class T> class MyMax { private: T a; T b; public: MyMax(); MyMax(T x1,T x2) { a=x1; b=x2; } T myMaxFuc() { return a>b?a:b; } };
调用
//定义对象
MyMax<int> max2(1,2);
cout<<"MyMax:"<<max2.myMaxFuc()<<endl;
可以定义多模板的参数
可以定义多种类型的形参。
template<typename T1, typename T2> class CTest { ... };
对象实例化时:
CTest testA<int, float>; CTest testB<double, string>
参考链接: