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

error C2664: “CObArray:Add”: 不能将参数 1 从“CVertex *”转换为“CObject *”,该怎么解决

热度:437   发布时间:2013-02-25 00:00:00.0
error C2664: “CObArray::Add”: 不能将参数 1 从“CVertex *”转换为“CObject *”
做了个类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 基类仍然出现同样问题
  相关解决方案