在一个DLL中,我在自己创建的类中使用了模板成员函数来代替预处理宏.但出现以下错误:
error C2664: 'double Data::extract(double &)' : cannot convert parameter 1
from 'class CArray' to 'double &'
为什么在匹配模板定义时它要寻找一个DOUBLE参数?
我觉得你可能是在表达成员函数(内联)时出现了问题,请参照下面的示例:
class AFX_EXT_CLASS Data : public CObject //This is not a template
{
public:
Data();
Data(BYTE * buffer,int size);
template
Data(const CArray& array);
template
CArray& extract(CArray& array)
{
CArchive ar(&buffer, CArchive::store);
ar >> array;
};
double extract(double&);
(...)
private:
CMemFile buffer;
}
|