我有一个会议清单:
std::list<meeting*> meetings;
我想迭代列表并返回对特定会议的引用:
meeting& day::findMeeting( float StartHour )
{
std::list<meeting*>::iterator it;
for(it = meetings.begin(); it != meetings.end(); it++)
{
if (it->getStartHour() == StartHour)
{
return *it;
}
}
throw no_such_meeting_error;
}
我收到以下错误:
'getStartHour' : is not a member of 'std::_List_iterator<_Mylist>'
'return' : cannot convert from 'meeting *' to 'meeting &'
invalid return type 'meeting **' for overloaded 'operator ->'
我仍在学习 C++,所以很高兴了解我做错了什么。还,
- 从函数返回对对象的引用是一种好习惯吗?有什么更好的办法吗?
- 由于列表中项目的更改,引用是否可能会因某些原因而失效?
谢谢