会議のリストがあります。
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++を学んでいるので、私が間違っていることを理解できれば幸いです。また、
- 関数からオブジェクトへの参照を返すのは良い習慣ですか?何か良いことはありますか?
- リスト内の項目が変更されたために、一部の参照が無効になる可能性がありますか?
ありがとう