2014-10-19 43 views
-1
Word Word::operator= (const Word& RHS) const{ 

    if(word != RHS.GetWord()){ 
    } 
} 

我在這裏虧本,如何有效地刪除當前的對象字符串,然後將輸入的字符串複製到它?C++過載運算符=對於一個字符串

+0

如果'wordText'是一個'std :: string',則根本不需要重寫隱式定義。或者你是什麼意思? – Deduplicator 2014-10-19 00:03:14

+0

我認爲你正在尋找'swap()'。 – 5gon12eder 2014-10-19 00:04:27

+0

是wordText是一個字符串。 C++阻止我簡單地說wordText = RHS.GetWord()。 – user2963379 2014-10-19 00:04:37

回答

3

你的錯誤是在原型:

Word Word::operator= (const Word& RHS) const{ 
//^         ^^^^^ ??? 

的賦值運算符是一個常量對象沒用,所以最後const是壞的。
此外,編譯器無法診斷的缺陷(除非您在某處需要使用左值),它應該通過引用返回。

無論如何,作爲成員的副本是足夠好的,根本沒有意義定義自己的賦值運算符:
使用默認值。