当前位置: 代码迷 >> VC >> error C2664: “CObArray:Add”: 不能将参数 一 从“CVertex *”转换为“CObject *”
  详细解决方案

error C2664: “CObArray:Add”: 不能将参数 一 从“CVertex *”转换为“CObject *”

热度:9876   发布时间:2013-02-25 00:00:00.0
error C2664: “CObArray::Add”: 不能将参数 1 从“CVertex *”转换为“CObject *”
本帖最后由 chinaonsh 于 2010-07-27 11:24:06 编辑
做了个类CVertex
利用CTypedPtrArray<CObArray,CVertex*>m_VertexArray1;

CVertex*  m_Vertex;

m_Polyline->m_VertexArray1.Add(m_Vertex);


d:\program files\microsoft visual studio 8\vc\atlmfc\include\afxtempl.h(1860) : error C2664: “CObArray::Add”: 不能将参数 1 从“CVertex *”转换为“CObject *”
1>        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>        d:\program files\microsoft visual studio 8\vc\atlmfc\include\afxtempl.h(1860): 编译类 模板 成员函数“INT_PTR CTypedPtrArray<BASE_CLASS,TYPE>::Add(TYPE)”时
1>        with
1>        [
1>            BASE_CLASS=CObArray,
1>            TYPE=CVertex *
1>        ]
1>        f:\调绘系统\code\cadtoshp\cadtoshp\polyline.h(19): 参见对正在编译的类 模板 实例化“CTypedPtrArray<BASE_CLASS,TYPE>”的引用
1>        with
1>        [
1>            BASE_CLASS=CObArray,
1>            TYPE=CVertex *
1>        ]
------解决方案--------------------------------------------------------
必须定义一个CObArray*的类型,你可以用
CObArray* m_ObArray;
...
m_Polyline->m_VertexArray1.Add(m_ObArray);

------解决方案--------------------------------------------------------
引用:
我用CObArray 作CVertex 基类仍然出现同样问题

把CObject 作为CVertex的基类

  相关解决方案