9

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

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

列表是我班级的名字

4

2 回答 2

18

这个错误是不言自明的。

使用此代码:

list& operator= (const list &l)

在类声明之外,您必须明确该函数属于哪个范围:

list& list::operator= (const list &l)
//    ^^^^^^
于 2012-10-25T18:10:17.617 回答
7

如果您operator=类定义中定义函数,请这样声明:

class list {
  ...
  list& operator=(const list&) { ... return *this; }
};

如果你在你的类定义之外operator=定义你的函数,在这个完整和正确的例子中声明它:

class list {
  public:
  list& operator=(const list&);
};
list& list::operator=(const list&) {
  return *this;
}
int main() {}
于 2012-10-25T18:11:48.070 回答