我正在处理的所有类都有 Create()/Destroy() (或 Initialize()/Finalized() )方法。
Create()方法的返回值为bool像下面这样。
bool MyClass::Create(...);
所以我可以从返回值中检查实例的初始化是否成功。
如果没有 Create()/Destroy() 我可以在 constructor() 和 destructor() 中做同样的工作,但我无法解决以下问题。
谁能帮我?提前致谢。
我不能使用异常,因为我的公司不喜欢它。
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;
如果不想使用异常,有两种方法可以让调用者知道构造函数是否成功:
- 构造函数采用指向参数的引用/指针,该参数将向调用者传达错误状态。
- 该类实现了一个方法,该方法将返回构造函数的错误状态。调用者将负责检查此方法。
如果您采用这些技术中的任何一种,请确保您的析构函数可以处理构造函数失败的实例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)