⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 index136.htm

📁 一本不错的VC编程的参考书
💻 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>
&nbsp;&nbsp;error C2664: 'double Data::extract(double &)' : cannot convert parameter 1<Br>
&nbsp;&nbsp;from 'class CArray' to 'double &'<Br>
为什么在匹配模板定义时它要寻找一个DOUBLE参数?<Br>
</Br>
我觉得你可能是在表达成员函数(内联)时出现了问题,请参照下面的示例:<Br>
</Br>
&nbsp;&nbsp;&nbsp;class AFX_EXT_CLASS  Data : public CObject  //This is not a template<Br>
&nbsp;&nbsp;&nbsp;{<Br>
&nbsp;&nbsp;&nbsp;public:<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Data();<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Data(BYTE * buffer,int size);<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Data(const CArray& array);<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CArray& extract(CArray& array)<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CArchive ar(&buffer, CArchive::store);<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ar >> array;<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double extract(double&);<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(...)<Br>
&nbsp;&nbsp;&nbsp;private:<Br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMemFile buffer;<Br>
&nbsp;&nbsp;&nbsp;}<Br>
</Br>
</Br>
</p></td></tr>
</table>
</body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -