加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 如何在不使用异常的情况下检查构造函数()中的失败?

发布时间:2020-12-16 10:54:15 所属栏目:百科 来源:网络整理
导读:我正在处理的所有类都有Create()/ Destroy()(或Initialize()/ Finalized())方法. Create()方法的返回值如下所示. bool MyClass::Create(...); 所以我可以从返回值检查实例的初始化是否成功. 没有Create()/ Destroy()我可以在constructor()和析构函数()中做同
我正在处理的所有类都有Create()/ Destroy()(或Initialize()/ Finalized())方法.

Create()方法的返回值如下所示.

bool MyClass::Create(...);

所以我可以从返回值检查实例的初始化是否成功.

没有Create()/ Destroy()我可以在constructor()和析构函数()中做同样的工作,但我无法解决下面的问题.

谁能帮我?提前致谢.

我不能使用例外,因为我的公司不喜欢它.

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;

解决方法

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

>构造函数接受一个参数/指针,该参数将指向将错误状态传递给调用者的参数.
>该类实现了一个返回构造函数错误状态的方法.调用者将负责检查此方法.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读