我試着編譯時收到此錯誤信息以下'std :: list <_Ty> :: push_back':無法將'this'指針從'const std :: list <_Ty>'轉換爲'std :: list <_Ty>''
void MyClass::MyFunc() const
{
int i= 0;
myList.push_back(i);
}
我已經吃過的常量,增加了功能,儘管它返回void
,修復與功能本身的調用一個相同的問題,但現在,它的使用STL的成員發生,我在想我的代碼是非常錯誤的。作爲參考,誤差
cannot convert 'this' pointer from 'const MyClass' to 'MyClass &'
其實我有,因爲我繼承了這個從別人與編碼標準和最佳做法的一個非常濫用的關係發生了什麼事情的很少的想法。如果有人能告訴我這個問題是什麼問題,我應該在代碼中尋找什麼,這對我有很大的幫助。
你不能將一個成員func標記爲「只讀」,然後期望它寫入沒有問題。 http://msdn.microsoft.com/en-us/library/6ke686zh(v=vs.110).aspx 另外,請注意「const int Func()」和「int Func()const」之間的區別。 – Gaminic
這裏有一些關於'const'的含義的誤解:_I已經必須將const添加到函數中,儘管它返回void_。 'const'與函數返回的內容無關(除非它返回一個指向成員的指針/引用)。你應該看看原來的錯誤(你在添加'const'之前得到的那個錯誤),並試圖理解爲什麼你調用MyFunc()的對象是一個常量對象。 – jogojapan