2 dongdan 002 dongdan_002 于 2014.11.12 17:19 提问

Clist中包含Clist的变量,无法初始化 “很有意思的一个题目” 大侠路过请留步,谢谢

最外层:typedef Clist MOUDLE;
structA{
type A;
...
MAC mac;
}
MAC的定义为:typedef Clist MAC;

在全局或局部定义MOUDLE md;时报错:
1>D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include\afxtempl.h(771): error C2248: “CObject::operator =”: 无法访问 private 成员(在“CObject”类中声明)
1> D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include\afx.h(535) : 参见“CObject::operator =”的声明
1> D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include\afx.h(509) : 参见“CObject”的声明
1> 此诊断出现在编译器生成的函数“CList &CList::operator =(const CList &)”中
1> with
1> [
1> TYPE=std::string,
1> ARG_TYPE=std::string &
1> ]

源码如下:

#include

using namespace std;
typedef CList< string, string&> lMac;
typedef struct MOUDLE
{
string name;
lMac lMac1;
int n_Count;
int max_Count;
int version;
public:
void operator= (MOUDLE& m)
{
name = m.name;
lMac1 = m.lMac1;
n_Count = m.n_Count;
max_Count = m.max_Count;
version = m.version;
}
}MOUDLE;
typedef CList L_MOUDLE;
L_MOUDLE mou;

1个回答

happyparrot
happyparrot   Ds   Rxr 2014.11.14 15:18

lMac1 = m.lMac1;//这句是不可以的。

Csdn user default icon
上传中...
上传图片
插入图片