如何判断返回值没有函数的结果?

dan*_*jar 5 c++ error-handling coding-style function return-type

我有一个简短的问题.给定一个返回类对象的函数作为结果,如果没有结果,应该返回什么(比如因为索引超出范围)?我可以返回一个新的"空"对象,但我怎么能指出没有成功的计算?

我想有一个共同的方法.

Dan*_*rey 13

C++中的常见方法是抛出异常或使用类似的包装器boost::optional.

如果它是某种错误,则应抛出异常,如果boost::optional函数返回空结果的有效用例,则该方法更合适.想到的一个例子是SQL的NULL.boost::optional在我们的代码库中非常方便.


Tsc*_*cka 2

当值与预期结果不匹配时,您可以引发异常。

可以在http://www.cplusplus.com/doc/tutorial/exceptions找到教程

异常遵循 try 和 catch 原则。

程序“尝试”执行代码。如果发生意外情况,执行的代码会“抛出”一个对象、变量或其他任何东西,并且这将被捕获。在 catch 语句中,您可以放置​​代码,如果发生意外情况应该发生什么。

只需按照教程操作即可。