从C++函数返回成功或一个或多个错误代码的好方法是什么?
我有这个名为save()的成员函数,它保存到每个成员变量中,至少有十个这些成员变量被保存到,对于调用save(),我想找出是否调用失败,如果是这样,关于哪个成员变量(一些是硬故障,一些是软的).
您可以返回具有多个错误字段的对象,也可以使用"out"参数.
你如何做到这一点取决于你的设计以及你想要返回的确切内容.常见的情况是,您需要报告状态代码以及各种消息.有时会在函数返回状态代码作为返回值的情况下执行此操作,然后通过"out"参数返回消息状态.
如果您只是返回一组"代码",那么构造结构类型并返回它可能更有意义.在这种情况下,我倾向于将其作为out参数传递,并让方法在内部更新它,而不是每次都分配一个新的.
你打算一次或多次这样做吗?
我知道这并没有真正回答你的问题,但......
在C++中,您应该使用异常而不是返回错误代码.错误代码最常用于库,它们不希望强制库用户使用特定的错误处理约定,但在C++中,我们已经有了stdexcept.当然,可能有理由不使用异常,例如,如果您正在编写嵌入式代码或内核扩展.
我通常使用boost::tuple:
typedef boost::tuple<int,int> return_value;
return_value r = my_function();
int first_value = boost::get<0>( r );
int second_valud = boost::get<1>( r );
Run Code Online (Sandbox Code Playgroud)
编辑
您还可以使用boost::tie从元组中提取值:
boost::tie( first_value, second_value ) = r;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3020 次 |
| 最近记录: |