我有一个计算某些东西的函数,如果结果无效,我想返回类似于"NULL“的东西。我已经找到了一种使用指针的方法,但是有没有更简单的方法呢?
发布于 2014-02-10 00:01:58
这真的取决于你的函数的语义。如果函数的约定是它将返回一个int给用户,并且由于某种原因它不能这样做,那么您的函数应该抛出一个异常。如果函数的约定是它将向用户返回一个int或不返回任何内容,那么您可能希望使用boost::optional。
发布于 2014-02-10 00:06:04
NULL的类型是void*,因此它不能直接传递给int,但您也可以这样做:
#define NOT_FOUND -1或者只是一些你不使用的数字。
同样,正如@juanchopanza指出的,你可以抛出一个异常
发布于 2014-02-10 00:05:45
使用Event-Driven Programming通过:枚举或#defines设置返回码:
(警告:这是一个非常幼稚的例子)
#define GOOD_INPUT 10001
#define BAD_INPUT 10002
int test_function() {
std::string str;
std::cout << "Enter a string:" << std::endl;
std::cin >> str;
if (!str.empty()) {
return GOOD_INPUT;
}
else {
return BAD_INPUT;
}
}稍后,您可以检查是否一切正常:
int rtn_code = test_function();
if (rtn_code == BAD_INPUT) {
//something went wrong: say or do something.
}https://stackoverflow.com/questions/21661317
复制相似问题