template<class T,int i= 10>class a{
4 public:
5 a();
6 void printall();
7 private:
8 int size;
9 T *value;
10 };
11 template<class T,int i> a<T,i>::a(){
12 size = i;
13 value = new T [size];
14 }
15 template<class T,int i>void a<T,i>::printall(){
16 for(int j=0;j < size;j ++){
17 cout << value[j] << endl;
18 }
19 }
20 void f1(){
21 a<int,18> a1;//如果前面已经使用了int i= 10;则如果后面给出了参数,就使用后面的参数
22 a<short> a2;//如果后面没有使用参数就使用前面的参数i为10的
23 a1.printall();
24 a2.printall();
25 }
![](https://img2024.cnblogs.com/blog/35695/202403/35695-20240328092537879-1189167464.jpg)