最外层: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;