【发布时间】:2018-03-27 20:26:59
【问题描述】:
我有一个像这样的typedef 结构:
typedef struct
{
int id;
CString name;
} USER_NAME;
CMap<int,int, CArray<USER_NAME>, CArray<USER_NAME>> * m_mUserNameMap;
在 CPP 文件中:
CArray<USER_NAME> sUName;
sUName.id = 10;
sUName.name = "Test it!!!";
m_mUserNameMap = new CMap<int,int, CArray<USER_NAME>, CArray<USER_NAME>>;
m_mUserNameMap->SetAt(1, sUName);
我收到以下错误:
错误 C2248:“CObject::CObject”:无法访问在“CObject”类中声明的私有成员
不知道发生了什么!欢迎任何帮助。
我尝试使 m_mUserNameMap 不是指针,这会在该行本身中给出上述错误。
【问题讨论】:
-
提示:停止使用旧的 MFC 容器并使用 std 容器,例如
std::map和std::vector。 -
首先,使用
ARG_模板参数的引用,例如CMap<int,int&, CArray<USER_NAME>, CArray<USER_NAME>&>,因为CObject的构造函数是私有的,其次-使用std::map和std::vector
标签: c++ visual-c++ mfc