因此,我制作了一个链接列表,其中包含我创建的类对象的参考。

我想做一个在链表中搜索并返回对象的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

09-06 10:17