-1
Word Word::operator= (const Word& RHS) const{
if(word != RHS.GetWord()){
}
}
我在這裏虧本,如何有效地刪除當前的對象字符串,然後將輸入的字符串複製到它?C++過載運算符=對於一個字符串
Word Word::operator= (const Word& RHS) const{
if(word != RHS.GetWord()){
}
}
我在這裏虧本,如何有效地刪除當前的對象字符串,然後將輸入的字符串複製到它?C++過載運算符=對於一個字符串
你的錯誤是在原型:
Word Word::operator= (const Word& RHS) const{
//^ ^^^^^ ???
的賦值運算符是一個常量對象沒用,所以最後const
是壞的。
此外,編譯器無法診斷的缺陷(除非您在某處需要使用左值),它應該通過引用返回。
無論如何,作爲成員的副本是足夠好的,根本沒有意義定義自己的賦值運算符:
使用默認值。
如果'wordText'是一個'std :: string',則根本不需要重寫隱式定義。或者你是什麼意思? – Deduplicator 2014-10-19 00:03:14
我認爲你正在尋找'swap()'。 – 5gon12eder 2014-10-19 00:04:27
是wordText是一個字符串。 C++阻止我簡單地說wordText = RHS.GetWord()。 – user2963379 2014-10-19 00:04:37