c 返回对象时,如何处理异常情况?

2026-06-05 20:449阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计214个文字,预计阅读时间需要1分钟。

c 返回对象时,如何处理异常情况?

以下是对您提供的代码的简化版本,不超过100个字:

c 返回对象时,如何处理异常情况?

cif (rc > 0) { submatch(sm, Str, ovector, rc); return sm;} else { return nullptr;}

这段代码检查`rc`的值,如果大于0则调用`submatch`函数并返回结果,否则返回`nullptr`。

如下代码

如下代码

12345678submatch foo(...){    if (rc > 0){        submatch sm(Str, ovector,rc);        return sm;    }    else {        return nullptr;    }

然而这个语句不能成立,因为函数返回的签名不是指针,不能用nullptr

但我又不希望用指针,因为用了指针,调用这要负责delete,这是不希望的

我希望C++能和python类似,如果异常返回None,类似nullptr,调用着也不需要关心delete对象的问题

1234auto m = foo();if (m 不是null) {   操作m}

无需delete m

本文共计214个文字,预计阅读时间需要1分钟。

c 返回对象时,如何处理异常情况?

以下是对您提供的代码的简化版本,不超过100个字:

c 返回对象时,如何处理异常情况?

cif (rc > 0) { submatch(sm, Str, ovector, rc); return sm;} else { return nullptr;}

这段代码检查`rc`的值,如果大于0则调用`submatch`函数并返回结果,否则返回`nullptr`。

如下代码

如下代码

12345678submatch foo(...){    if (rc > 0){        submatch sm(Str, ovector,rc);        return sm;    }    else {        return nullptr;    }

然而这个语句不能成立,因为函数返回的签名不是指针,不能用nullptr

但我又不希望用指针,因为用了指针,调用这要负责delete,这是不希望的

我希望C++能和python类似,如果异常返回None,类似nullptr,调用着也不需要关心delete对象的问题

1234auto m = foo();if (m 不是null) {   操作m}

无需delete m