constあなたの場合は必要ありません
たとえば、コンパイラの観点でMatrix_Aは、クラスとMatrix_B以下の両方が同じです。これは、とが人間の観点からは一定であるという事実を強制するためのものですが、必須ではありません。constROWNUMCOLNUM
template <class T, int const ROWNUM, int const COLNUM>
class Matrix_A
{
};
template <class T, int ROWNUM, int COLNUM>
class Matrix_B
{
};
さらに、次のクラスMatrix_Cも同様の定数変数ROWNUMをCOLNUM別の方法で指定します。
template <class T>
class Matrix_C
{
static int const ROWNUM = 5;
static int const COLNUM = 20;
};
// the following three objects use constant variables ROWNUM and COLNUM
Matrix_A<bool,5,20> a;
Matrix_B<bool,5,20> b;
Matrix_C<bool> c;