因此,我制作了一个链接列表,其中包含我创建的类对象的参考。
我想做一个在链表中搜索并返回对象的const引用(如果存在)的方法,否则,如果对象不存在,则返回SOME VALUE。
应该是哪个值?如果它是int,则返回0,如果它是指针,则返回NULL。
const Node& NodeList::NodeNumSearch(int num) const
{
Member *TempHead=MemberHead;
while(TempHead!=NULL)
{
if(TempHead->GetNode().getNum() == num)
return TempHead->GetNode();
TempHead=TempHead->GetNext();
}
return ???;
}
附言成员对象是链接列表的成员。 Node对象是链表的Member对象中的值。
最佳答案
在这种情况下,throw
是一个异常,或者将函数更改为通过指针返回。这里没有一种明智的方法可以返回“空”引用。
或者,采用标准库方法,并按值返回类似Interator的代理,然后可以检查其是否为end
。