クラスリンクリストをコンストラクターでコンパイルしているときにこのエラーが発生します。コピー代入演算子を実行したかったのですが、このエラーが発生しました。'list :: list'は、型ではなくコンストラクターに名前を付けています。行は次のとおりです。
list::list& operator= (const list &l)
リストは私のクラスの名前です
クラスリンクリストをコンストラクターでコンパイルしているときにこのエラーが発生します。コピー代入演算子を実行したかったのですが、このエラーが発生しました。'list :: list'は、型ではなくコンストラクターに名前を付けています。行は次のとおりです。
list::list& operator= (const list &l)
リストは私のクラスの名前です
このエラーはかなり自明です。
このコードを使用します:
list& operator= (const list &l)
クラス宣言の外では、どのスコープが関数に属するかを正確にする必要があります。
list& list::operator= (const list &l)
// ^^^^^^
クラス定義内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() {}