【发布时间】:2017-01-17 05:30:13
【问题描述】:
我无法根据代码“CArray>& results”在 MFC 中创建二维数组。 代码:
CArray<CArray<CString>> res;
CArray<CString>strArray1;
strArray1.Add(L"Ali");
strArray1.Add(L"Ahmed");
strArray1.Add(L"Mark");
CArray<CString>strArray2;
strArray2.Add(L"1");
strArray2.Add(L"2");
strArray2.Add(L"3");
res.Add(strArray1);
res.Add(strArray2);
执行后出错: 错误 C2248:“CObject::operator =”:无法访问在类“CObject”中声明的私有成员
这应该在不覆盖 CArray 中的 copy 和 equals 方法的情况下完成,而是有什么方法可以让我不需要像 CArray 中的某些可以利用的方法那样间接使用这些方法。
【问题讨论】:
-
C2248 是编译器错误,而不是执行错误。上面sn-p中编译错误指向哪一行?
-
在当今的 C++ 时代,MFC 容器类是否仍然重要?你可以简单地使用
std::vector<std::vector<CString>>。 -
@andlabs - 编译器错误是由于行“res.Add(strArray1);”
-
CArray基类的复制构造函数被有意标记为私有,所以你不能做你正在尝试的事情。如果您必须拥有数组数组,@PaulMcKenzie 建议的评论是前进的最佳方式。
标签: c++ visual-c++ mfc