📄 index136.htm
字号:
<html>
<style type="text/css"><!--
.p9 { font-family: "宋体"; font-size: 9pt}a {text-transform: none; text-decoration: none;}
a:hover {text-decoration: underline; color: #FF0000;}
--></style>
<body background="../di2001.jpg">
<h3 align="center"><font COLOR="#AOAO99"></font></h3>
<table width="100%" border="1" cellspacing="1">
<tr><td><p align="center"><font color="#FF0000">DLL中的模板成员函数?</font></td></tr>
<tr><td><p>
</Br>
在一个DLL中,我在自己创建的类中使用了模板成员函数来代替预处理宏.但出现以下错误:<Br>
</Br>
error C2664: 'double Data::extract(double &)' : cannot convert parameter 1<Br>
from 'class CArray' to 'double &'<Br>
为什么在匹配模板定义时它要寻找一个DOUBLE参数?<Br>
</Br>
我觉得你可能是在表达成员函数(内联)时出现了问题,请参照下面的示例:<Br>
</Br>
class AFX_EXT_CLASS Data : public CObject //This is not a template<Br>
{<Br>
public:<Br>
Data();<Br>
Data(BYTE * buffer,int size);<Br>
template<Br>
Data(const CArray& array);<Br>
template<Br>
CArray& extract(CArray& array)<Br>
{<Br>
CArchive ar(&buffer, CArchive::store);<Br>
ar >> array;<Br>
};<Br>
double extract(double&);<Br>
(...)<Br>
private:<Br>
CMemFile buffer;<Br>
}<Br>
</Br>
</Br>
</p></td></tr>
</table>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -