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

posted @ 2011-08-11 16:46  uniqueliu  阅读(913)  评论(0编辑  收藏  举报