#include< iostream >
using namespace std;
template< typename T, int size >  //定义类模板，接受类型参数T和非类型参数size
class Sum
{
public:
	T add( T (&ary)[size] )     //成员函数定义
	{
		T sum=0;
		for( int i=0; i<size; i++ )
		{
			sum += ary[i];
		}
		return sum;
	}
};
int main()
{
	Sum<int, 5> i;       //用int型和整数5产生实例化类模板Sum
	Sum<double, 3> d;   //用double型和整数3产生实例化类模板Sum
	int i_ary[5]={1, 2, 3, 4, 5};
	double d_ary[3]={1.1, 2.2, 3.3}; 
	cout<<"i_sum="<<i.add(i_ary)<<endl;   //调用类成员函数，并输出
	cout<<"d_sum="<<d.add(d_ary)<<endl;
	return 0;
}
