我在使用构造函数编译类链表时遇到此错误。我想做一个复制赋值运算符,但我得到这个错误'list :: list'命名构造函数,而不是类型。 这条线是:
list::list& operator= (const list &l)
list是我的班级名称
答案 0 :(得分:15)
此错误非常明显。
使用此代码:
list& operator= (const list &l)
在类声明之外,您必须精确确定哪个范围属于该函数:
list& list::operator= (const list &l)
// ^^^^^^
答案 1 :(得分:6)
如果您在的类定义中定义operator=
函数,请按以下方式声明:
class list {
...
list& operator=(const list&) { ... return *this; }
};
如果您要定义<{1}}函数在之外的
operator=