[問題] operator

看板C_and_CPP (C/C++)作者 (累人啊....)時間14年前 (2012/06/05 16:32), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/2 (看更多)
關於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)

06/05 16:44, , 1F
map::operator[]非const,不能在const method裡呼叫
06/05 16:44, 1F

06/05 19:21, , 2F
那operator[]要寫兩個版本。一個const、一個可寫入
06/05 19:21, 2F
文章代碼(AID): #1FpSGjWU (C_and_CPP)
討論串 (同標題文章)
以下文章回應了本文
0
7
完整討論串 (本文為第 1 之 2 篇):
0
7
2
2
文章代碼(AID): #1FpSGjWU (C_and_CPP)