看板 C_and_CPP 關於我們 聯絡資訊
關於operator有些問題不了解,如下(節錄部份) class GMMtors { public: GMotor* operator[](String NameIndex) const; private: map<String,GMotor*> m_MMotors; }; GMotor* GMMtors::operator[](String NameIndex) const { if (!this->m_MMotors.count(NameIndex)) { return this->m_MMotors[NameIndex]; //這裡出錯 } } [C++ Error]:'operator+' not implemented in type 'map<AnsiString,GMotor *,less<AnsiString>, allocator<pair<const AnsiString,GMotor *> > >' for arguments of type 'AnsiString' 本來是想避掉在無形中自己插入新的元素,結果發現這個問題 看了錯誤訊息,但不是很懂這個opeerator+是在哪邊會被用到? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.163.42 ※ 編輯: tyc5116 來自: 111.251.163.42 (06/05 16:36)
shadow0326:map::operator[]非const,不能在const method裡呼叫 06/05 16:44
iamstudent:那operator[]要寫兩個版本。一個const、一個可寫入 06/05 19:21