“模板”学习笔记(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~~这个就是类模板的简单示例咯

浙公网安备 33010602011771号