gpt4 book ai didi

c++在if ... else中为const QList赋值

转载 作者:太空狗 更新时间:2023-10-29 19:44:03 26 4
gpt4 key购买 nike

我想根据指针的值给 const QList 赋值。

invar 是一个指针,如果是NULL 我想给const QList mylist赋一个第一个值,如果不是NULL,另一个值。但是观察到 const 的正确性:我不打算之后更改 mylist 的值。

有没有可能

if(invar)
const QList<Type> zoneList = invar->getZones();
else
const QList<Type> zoneList = aList ;

我只定义了一次 zoneList,为什么它不起作用?

此外,由于我在方法的下一部分中使用了 zoneList,因此出现了此编译错误:undeclared identifier

但我也不允许这样写

    const QList<Type> zoneList ;

if(invar)
zoneList = invar->getZones();
else
zoneList = NULL ;

我有编译器错误 Error 1

error C2678: binary '=' : no operator found which takes a left-hand operand of type 'const QList<T>' (or there is no acceptable conversion)  

是否可以根据条件将两个不同的值分配给此 const QList?那么正确的写法是什么?

最佳答案

使用三元运算符?:

const QList<Type> zoneList(invar ? invar->getZones() : aList);

顺便说一句,它是 NULL 还是 aList?你在上面的代码中都有。

这个

if(invar)
const QList<Type> zoneList = invar->getZones();
else
const QList<Type> zoneList = aList ;

不起作用,因为每个 zoneList 变量仅在 if 语句中定义。

关于c++在if ... else中为const QList赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16185691/

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