gpt4 book ai didi

c++ - 如何在不使用异常的情况下检查 constructor() 中的失败?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:03 25 4
gpt4 key购买 nike

我正在处理的所有类都有 Create()/Destroy()(或 Initialize()/Finalized())方法。

Create() 方法的返回值是bool,如下所示。

bool MyClass::Create(...);

所以我可以通过返回值来检查实例的初始化是否成功。

如果没有 Create()/Destroy(),我可以在 constructor() 和 destroy() 中做同样的工作,但我无法解决以下问题。

谁能帮帮我?提前致谢。

我不能使用异常(exception),因为我的公司不喜欢它。

class Foo
{
private:
AnotherClass a;
public:
Foo()
{
if(a.Initialize() == false)
{
//???
//Can I notify the failure to the user of this class without using exception?
}
}
...
};

Foo obj;

最佳答案

如果不想使用异常,有两种方法可以让调用者知道构造函数是否成功:

  1. 构造函数采用指向参数的引用/指针,将错误状态传达给调用者。
  2. 该类实现了一个方法,该方法将返回构造函数的错误状态。调用者将负责检查此方法。

如果您采用其中任何一种技术,请确保您的析构函数可以处理构造函数失败的实例。

关于c++ - 如何在不使用异常的情况下检查 constructor() 中的失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1951093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com