DLL中的模板成员函数?


在一个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;
   }


[返回“一学网www.onestudy.net”首页]