重载'='时报错:error C2801: 'operator =' must be a <Unknown> member是怎么回事?

来源:百度知道 编辑:UC知道 时间:2024/06/11 21:08:20
定义了一个类,想重载赋值运算符'=',可是总报错:
--------------------Configuration: EXP004 - Win32 Debug--------------------
Compiling...
poly.cpp
f:\exp004\poly.h(27) : error C2801: 'operator =' must be a <Unknown> member
f:\exp004\poly.cpp(187) : error C2801: 'operator =' must be a <Unknown> member
f:\exp004\poly.cpp(190) : error C2248: 'value' : cannot access private member declared in class 'POLY'
f:\exp004\poly.h(32) : see declaration of 'value'
f:\exp004\poly.cpp(191) : error C2248: 'value' : cannot access private member declared in class 'POLY'
f:\exp004\poly.h(32) : see declaration of 'value'
Error executing cl.exe.

EXP004.exe - 4 error(s), 0 warning(s)
,这是怎么回事,而且已经把它定义为友元函数,怎么还是cannot access private member?
struct PolyNode
{
unsigned int index; // Index
int co

这样写必须要用成员函数来重载,就是说去掉friend
如果要用友元来重载的话,需要两个POLY参数。推荐友元。

不关返回值的事情.

不知道你怎么会编译出错,代码发上来呢