我在編譯我的類鏈接列表和構造函數時出現此錯誤。我想做一個複製賦值操作符,但我得到這個錯誤'list :: list'命名構造函數,而不是類型。 線路:'list :: list'命名構造函數,而不是類型
list::list& operator= (const list &l)
名單是我的課
我在編譯我的類鏈接列表和構造函數時出現此錯誤。我想做一個複製賦值操作符,但我得到這個錯誤'list :: list'命名構造函數,而不是類型。 線路:'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() {}
我在課堂上宣佈它,然後當我想給班級以外的代碼我已經使用給定的代碼,它給了我這個錯誤 –
請參閱[本示例](http://ideone.com/FgdLt0)。 –
好吧,這個工程,現在我必須實現鏈接列表的複製賦值操作符:/ –
錯誤:「列表運算符=(const的名單和)」必須是一個非靜態成員函數 –
你'在類聲明之外定義你的'operator ='。看我的編輯。 – Synxis