消息是一类我做了。 我有我传递给messageTimeOut(和其他一些功能)的主要功能一组人。 在使用messageTimeOut的itorator我通过他们的循环和访问不同的成员函数。 然而,我只能访问消息的const成员函数的迭代器指向。 如果我尝试访问非const成员函数我得到的错误:
“以函数 'void messageTimeOut(threadParameters *)':main.cpp中:74:33:错误:使 'const的消息' 作为 '这个' 参数 '无效消息:: setTimedOut(布尔)' 丢弃限定符[-fpermissive]。 ”
这是有道理的,我无法访问一个const Message对象的非const成员函数,但我如何去使之成为一个非const的Message对象,所以我可以访问非const成员函数和更改消息? 谢谢
我的代码部分:
[ . . . ]
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;
}