2012-10-25 37 views
4

我在編譯我的類鏈接列表和構造函數時出現此錯誤。我想做一個複製賦值操作符,但我得到這個錯誤'list :: list'命名構造函數,而不是類型。 線路:'list :: list'命名構造函數,而不是類型

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

名單是我的課

回答

11

這個錯誤我的名字是不言自明。

使用此代碼:

list& operator= (const list &l) 

外一個類的聲明,你必須精確地在範圍所屬的功能:

list& list::operator= (const list &l) 
// ^^^^^^ 
+0

錯誤:「列表運算符=(const的名單和)」必須是一個非靜態成員函數 –

+0

你'在類聲明之外定義你的'operator ='。看我的編輯。 – Synxis

4

如果要定義裏面類的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() {} 
+0

我在課堂上宣佈它,然後當我想給班級以外的代碼我已經使用給定的代碼,它給了我這個錯誤 –

+0

請參閱[本示例](http://ideone.com/FgdLt0)。 –

+0

好吧,這個工程,現在我必須實現鏈接列表的複製賦值操作符:/ –

相關問題