类模板的“类型参数表”中可以出现非类型参数,例如下面的例子:
template<class T, int size> class CArray { T array[size]; public: void Print() { for (int i = 0; i < size; ++i) cout << array[i] << endl; } };
可以用 CArray 模板定义对象,例如:
CArray<int, 40> a;
编译器自动生成名为 CArray<int, 40> 的类。该类是通过将 CArray 模板中的 T 换成 int、 size 换成 40 后得到的。还可定义以下对象:
CArray <double, 40> a2;
CArray <int, 50> a3;
注意,CArray<double, 40> 和 CArray<int, 50> 完全是两个类,这两个类的对象之间不能互相赋值。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/21601.html