templateクラスで定数がある配列について
テンプレートクラスでtemplate<class type,int N>
とtemplate<class type>
で
template<class type,int N>
の場合は配列がオブジェクトに含まれて
template<class type>
の場合は配列にオブジェクトに含まれないっていう参考書にあるのですがどういう意味なのでしょうか?
//配列がオブジェクトに含まれる。
template<class type,int N> class x {
type vec[N] = { type() };
public:
x(){ }
void print() {
int i = 0;
for(i; i<N; i++)
cout << vec[i]<<"\n";
}
int size() { return N; }
};
//配列はオブジェクトに含まれない。
template<class type> class y {
int nelem;//要素数
type *vec;//配列の先頭要素を指すポインタtype型
public:
y(int s = 0, type t = type()) :nelem(s) {
vec = new type[nelem];
vec = { type() };
}
void print() {
int i = 0;
for (i; i < nelem; i++)
cout << vec[i] << "\n";
}
int size() { return nelem; }
};