“模板”学习笔记(6)-----类也可以有模板
函数都可以有模板,同样嘛,类当然不会放过这么好一个机会咯。类模板其实很简单,和函数模板一样,都是要首先声明一下模板类型为啥,然后再在类里面所有的东东都用这个模板来代替。我们以一个程序来说明一下:
#include <iostream> using namespace std; template<class ElementType> class Sum { public: Sum(ElementType A,ElementType B):a(A),b(B){} ElementType sum(){return a+b;} ElementType getA(){return a;} ElementType getB(){return b;} private: ElementType a,b; }; int main() { Sum<int> test(3,4); cout<<"第一个加数为:"<<test.getA()<<"第二个加数为:"<<test.getB()<<"\t和为:"<<test.sum()<<endl; Sum<double> test_2(3.4,7.9); cout<<"第一个加数为:"<<test_2.getA()<<"第二个加数为:"<<test_2.getB()<<"\t和为:"<<test_2.sum()<<endl; return 0; }
看到没,很简单吧。首先我们在程序的第3行声明了一个模板ElementType,其次在类Sum的定义里面,我们针对所有的元素都采用了ElementType这个模板类型。和函数模板唯一不同之处在于程序第17行和第19行,在这里,我们需要在类名Sum后面的尖括号<>里面加上实际的类型int和double。这样就可以对不同的类型数据作出不同的响应。程序的输出结果如下:
OK~~这个就是类模板的简单示例咯