请教C++模板类中,模板类指针作为函数实参时的c2036未知大小错误
大家好~平常用模板类用得不是很多,遇到了一个未知大小C2036错误。请大家指点
首先定义了一个模板类
template <class T>
class acrp_TLM
{
public:
void acrp_TLM()
{mem=new T[1024];}
status burst_read(T* data,unsigned int address,unsigned int length=1)
....
private:
T* mem;
}
然后在cpp文件中实现
status acrp_TLM<class T>::burst_nread(T *data,unsigned int address,unsigned int length=1)
{
if(address<m_start_address||address>m_end_address)
return TRANSFER_ERROR;
if(address+length>m_end_address)
return TRANSFER_ERROR;
data=&mem[address-m_start_address];
return TRANSFER_OK;
}
希望实现的功能是其它类调用这个函数,读取mem中的length长度的T类型数据,通过指针data,将mem数组中address处的元素地址赋给data。
编译的错误显示在data=&mem[address-m_start_address];这行
error C2036: “T *”: 未知的大小
请问大家什么原因,如何改正或者通过其它方法传回一大堆数据,但是这个数据应该是模板类的。
谢谢大家