0

我的项目中需要一个简单的哈希表,从文档看来,CMapStringToString正是我想要的。但是,我发现只需向我的类添加一个新字段就足以引发错误消息,即使我没有以其他方式访问它。

 ... other class members
 CMapStringToString myMap;

这样做会给我这个错误:

... 
error C2248: 'CObject::CObject' : cannot access private member declared in 
class 'CObject'

到目前为止,还没有任何引用myMap的东西。

错误的文件和行号是第 1503 行的“afxcoll.h”,它是 CMapStringToString 类定义的右大括号。

有人知道这里有什么问题吗?在任何地方都有此类的示例代码吗?


有人早些时候发布了一个答案,暗示问题在于复制构造函数是私有的,并建议为带有地图的类创建我自己的复制构造函数。这不起作用,并且发布它的人实际上删除了他们自己的答案(在我阅读之后但在我回复之前)。


我最终创建了一个派生自CMapStringToString的类,并为它编写了一个复制构造函数。这与之前的建议并不完全相同,并且有效。感谢大家的建议。他们可能并不完全正确,但他们至少把我引向了正确的方向。

4

1 回答 1

0

也许您的类没有复制构造函数,而您正试图在某处复制实例?大多数情况下这不会产生错误,但由于CMapStringToString类的基础类型是Object它可能需要。

于 2012-11-10T12:26:46.083 回答