c++ - boolean 赋值运算符

标签 c++ operators boolean

我有一个方法,我在堆上创建对象并返回一个 boolean 值,指示它是否运行良好。 尽管在 (1) 中我对我的 bool 赋值没有 100% 的把握;这样做合法吗?

    bool ret = true;

    if (ret = !mRenderBackend)     // make sure mRenderBackend is NULL
    {
        if (mEngineSettings.GetRenderBackend() == OPENGL)
            ret = mRenderBackend = mMemoryAllocator.AllocateObject<RenderOpenGL>();    // (1). AllocateObject returns either NULL or object address
        }

    return ret;

谢谢

最佳答案

您实际上根本不需要 bool,这有点让人难以理解。我个人会做类似的事情,

if (mRenderBackend == NULL)     // make sure mRenderBackend is NULL
{
    if (mEngineSettings.GetRenderBackend() == OPENGL)
        mRenderBackend = mMemoryAllocator.AllocateObject<RenderOpenGL>();    // (1). AllocateObject returns either NULL or object address
    }

return (mRenderBackend != NULL);

关于c++ - boolean 赋值运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12646199/

相关文章:

java - 尝试检查有效的括号/方括号配对

php - php mysql 中出现意外的 boolean 值

c++ - 如何将 zlib1.dll 添加到 MinGW

c++ - 在 C++ 中,是否可以强制用户捕获异常?

java - "|"中的 "int style = SWT.APPLICATION_MODAL | SWT.OK;"有什么作用(以及如何用谷歌搜索它)?

python - Python 的 boolean 值是按值传递的吗?

c++ - UE4 - 使用 CameraComponent 时观众不旋转(俯仰)

c++如何在while循环中进行异常处理以发现输入错误

python - 为什么 python list L += x 的行为与 L = L + x 不同?

c++ - 在 C++ 中使用 "+"连接字符串