其他分享
首页 > 其他分享> > c – 从返回引用的函数提前返回的最佳方法

c – 从返回引用的函数提前返回的最佳方法

作者:互联网

让我们说我们有一个形式的功能:

const SomeObject& SomeScope::ReturnOurObject()
{
    if( ! SomeCondition )
    {
        // return early
        return  ;
    }

    return ourObject;
}

显然,上面的代码有一个问题,如果条件失败,那么我们就如何从这个函数返回一个问题.
我的问题的关键是处理这种情况的最佳方法是什么?

解决方法:

这不是语法问题,而是设计问题.当SomeCondition为true时,您必须指定ReturnOurObject()应返回的内容.这主要取决于该功能将用于什么.你还没有告诉我们.

根据设计问题,我看到了一些可能的语法方法:

>返回对其他对象的引用;你必须在某个地方有一些ersatz对象
>在某个地方有一个特殊的“无对象返回”对象,你返回一个引用;客户可以检查这个;如果他们不检查他们得到合理的默认行为
>返回指针,而不是引用;客户端必须始终检查函数的返回值
>抛出异常;如果SomeCondition是一个特殊的东西,客户无法处理这是适当的
>断言;如果SomeCondition应该始终保持,则应该断言

标签:c,function,pass-by-reference
来源: https://codeday.me/bug/20191007/1869320.html