gpt4 book ai didi

c++ - 在 C++ 中的 if 中分配指针

转载 作者:搜寻专家 更新时间:2023-10-31 01:44:56 25 4
gpt4 key购买 nike

我这样做没问题:

if (SomeClass* objName = getThatClass())

如果 objName 不是 NULL 那么条件将为真,但是我想这样做:

if ((SomeClass* objName = getThatClass()) != NULL && someBoolIsTrue)

但随后我在 * 处收到一个错误,说它期望在此之前有一个主要表达式(* 标记)。展示如何分配一个值,然后在同一个 if 中检查其他内容?

注意:我想要这样做的原因是,我希望 objName 只在 if 范围内可见,另一个原因是我将这个 if 语句与其他语句结合起来,所以分离两个条件是行不通的要么。

最佳答案

这是一种可能:

if (SomeClass* objName = someBoolIsTrue ? getThatClass() : 0)

虽然这并不完全等同。由于 getThatClass() 仅在 someBoolIsTrue 时调用,如果 getThatClass() 调用有副作用,则行为会有所不同。

关于c++ - 在 C++ 中的 if 中分配指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22827288/

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