首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++整型函数可以返回类似于"NULL“的东西吗?

C++整型函数可以返回类似于"NULL“的东西吗?
EN

Stack Overflow用户
提问于 2014-02-09 23:59:01
回答 3查看 10.8K关注 0票数 3

我有一个计算某些东西的函数,如果结果无效,我想返回类似于"NULL“的东西。我已经找到了一种使用指针的方法,但是有没有更简单的方法呢?

EN

回答 3

Stack Overflow用户

发布于 2014-02-10 00:01:58

这真的取决于你的函数的语义。如果函数的约定是它将返回一个int给用户,并且由于某种原因它不能这样做,那么您的函数应该抛出一个异常。如果函数的约定是它将向用户返回一个int或不返回任何内容,那么您可能希望使用boost::optional

票数 4
EN

Stack Overflow用户

发布于 2014-02-10 00:06:04

NULL的类型是void*,因此它不能直接传递给int,但您也可以这样做:

代码语言:javascript
运行
复制
#define NOT_FOUND -1

或者只是一些你不使用的数字。

同样,正如@juanchopanza指出的,你可以抛出一个异常

票数 3
EN

Stack Overflow用户

发布于 2014-02-10 00:05:45

使用Event-Driven Programming通过:枚举或#defines设置返回码:

(警告:这是一个非常幼稚的例子)

代码语言:javascript
运行
复制
#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;
    }
}

稍后,您可以检查是否一切正常:

代码语言:javascript
运行
复制
int rtn_code = test_function();

if (rtn_code == BAD_INPUT) {
    //something went wrong: say or do something.
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21661317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档