4
如果我有一個基於對C++ 11圈的範圍,遠程for循環const引用似乎不有所作爲
for(auto const &ticket : ticketStrip->tickets()) {
ticket->ClearCalled();
}
爲什麼我能中呼籲票非const的方法循環,如ClearCalled(),當它沒有標記爲const?
void Ticket::ClearCalled() { ... }
ClearCalled確實修改了ticket的內部消息,所以它不應該被標記爲const。我知道我應該使用
auto &ticket
,但我只是想
auto const &ticket
和編譯器所接受它。
類型車票是
boost::shared_ptr<AbstractMainStageTicket>
,並把一些新的代碼:
ticket->ClearCalled();
ticket.reset();
使編譯器標誌了錯誤復位不是常量。
感謝您的幫助!
我使用Android版的GNU 4.6工具鏈。
如果你與調用它' - >'暗示'票「是一個迭代器。所以你有一個常量迭代器,而不是一個迭代器來const。什麼是門票()類型? – Pubby 2013-04-26 15:39:07
對不起,它實際上是一個智能指針,並且可以回答我的問題,我可以修改智能指針指向的內容,但不能修改智能指針本身。 – 2013-04-26 15:41:58