我的项目中需要一个简单的哈希表,从文档看来,CMapStringToString正是我想要的。但是,我发现只需向我的类添加一个新字段就足以引发错误消息,即使我没有以其他方式访问它。
... other class members
CMapStringToString myMap;
这样做会给我这个错误:
...
error C2248: 'CObject::CObject' : cannot access private member declared in
class 'CObject'
到目前为止,还没有任何引用myMap的东西。
错误的文件和行号是第 1503 行的“afxcoll.h”,它是 CMapStringToString 类定义的右大括号。
有人知道这里有什么问题吗?在任何地方都有此类的示例代码吗?
有人早些时候发布了一个答案,暗示问题在于复制构造函数是私有的,并建议为带有地图的类创建我自己的复制构造函数。这不起作用,并且发布它的人实际上删除了他们自己的答案(在我阅读之后但在我回复之前)。
我最终创建了一个派生自CMapStringToString的类,并为它编写了一个复制构造函数。这与之前的建议并不完全相同,并且有效。感谢大家的建议。他们可能并不完全正确,但他们至少把我引向了正确的方向。