gpt4 book ai didi

C++构造函数返回嵌入式系统

转载 作者:行者123 更新时间:2023-11-27 23:53:49 25 4
gpt4 key购买 nike

我正在开发 C++ 测试程序。环境不提供异常支持,我需要知道使用 new 时是否有足够的空间.我使用 new(std::nothrow) 看过有关它的帖子, 但我想问你以下问题:

假设我们有一段代码调用了new (std::nothrow)事实证明它可以分配对象并调用构造函数,但在构造函数中还有另一个 new哪个不能分配。

我怎么可能知道对象是否已正确初始化?(请不要在调用实例之前回答诸如标志之类的检查)反正有没有返回NULL来自构造函数?

最佳答案

不,您不能从构造函数返回值。

抛出异常是发出构造函数失败信号的唯一合理方式。如果异常不可用,最好的做法是完全避免可能会失败的构造函数。将所有重要的初始化移动到专用的 Init 成员函数。

请注意,这意味着不会复制任何分配资源的内容。禁用此类类中的所有复制构造函数和复制赋值运算符。

关于C++构造函数返回嵌入式系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44154182/

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