C++模板语法问题
template<class T> class Array
{
private:
T* data;
size_t count;
public:
Array(){data = NULL;}
Array(size_t count):count(count)
{
data = new T[count];
}
~Array()
{
if(data)
{
delete []data;
data=NULL;
}
}
T& operator[](size_t index)
{
if(index>=count)
{
MessageBox(NULL, L"out of bound", L"out of bound", MB_OK);
exit(0);
}
return data[index];
}
};
template<class T, template<class> class Ary, size_t count> class Container
{
public:
Ary<T> Arry(count);
T& operator[](size_t index)
{
return Arry[index];
}
};
[解决办法]
Ary<T> Arry(int count);//函数参数一定要是类型.
[解决办法]
你确定这个写法是复合C++ template class规范的么?
template<class T, template<class> class Ary, size_t count> class Container{public:Ary<T> Arry(count);T& operator[](size_t index){return Arry[index];}};