我正在处理的所有类都有 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;
最佳答案
如果不想使用异常,有两种方法可以让调用者知道构造函数是否成功:
- 构造函数采用指向参数的引用/指针,将错误状态传达给调用者。
- 该类实现了一个方法,该方法将返回构造函数的错误状态。调用者将负责检查此方法。
如果您采用其中任何一种技术,请确保您的析构函数可以处理构造函数失败的实例。
关于c++ - 如何在不使用异常的情况下检查 constructor() 中的失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1951093/