'list :: list'命名构造函数,而不是类型

时间:2012-10-25 18:08:36

标签: c++

我在使用构造函数编译类链表时遇到此错误。我想做一个复制赋值运算符,但我得到这个错误'list :: list'命名构造函数,而不是类型。 这条线是:

list::list& operator= (const list &l)

list是我的班级名称

2 个答案:

答案 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=