消息是我創建的類。我在傳遞給messageTimeOut(和一些其他函數)的主函數中有一組函數。在messageTimeOut中使用一個itorator,我正在循環它們並訪問不同的成員函數。但是,我只能訪問由迭代器指向的消息的const成員函數。如果我嘗試訪問非const成員函數我得到的錯誤:無法訪問C++中對象的非const成員函數std :: set
「In function 'void messageTimeOut(threadParameters*)': main.cpp:74:33: error: passing 'const Message' as 'this' argument of 'void Message::setTimedOut(bool)' discards qualifiers [-fpermissive].」
這讓我無法訪問一個const Message對象的非const成員函數的意義,但如何去讓這個非const Message對象,所以我可以訪問非常量成員函數並更改消息?由於
我的代碼部分:
[ . . . ]
void messageTimeOut(threadParameters* params)
{
set<Message>::iterator it = params->messages->begin();
[ . . . ]
for (; it != params->messages->end(); ++it)
{
if ((it->createdTime() + RESPONSE_WAIT) < GetTickCount())
{
it->setTimedOut(true); // error
}
}
ReleaseMutex(sentQueueMutex);
}
[ . . . ]
int main()
{
threadParameters rmparameters;
set<Message> sentMessages;
[ . . . ]
rmparameters.logFile = &logFile;
rmparameters.socket = socketDesciptor;
rmparameters.messages = &sentMessages;
[ . . . ]
messageTimeOut(rmparameters);
[ . . . ]
return 0;
}
'threadParameters'成員'messages'的聲明類型是什麼? – dasblinkenlight