我有一个方法,我在堆上创建对象并返回一个 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/