加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c将值赋给if … else中的const QList

发布时间:2020-12-16 10:33:18 所属栏目:百科 来源:网络整理
导读:我想根据指针的值为const QList赋值. invar是一个指针,如果它是NULL我想为const QList mylist分配第一个值,如果它不是NULL,则为另一个值.但是观察到const正确性:我不打算之后改变mylist的值. 是否有可能 if(invar) const QListType zoneList = invar-getZon
我想根据指针的值为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,我得到这个编译错误:未声明的标识符.

但我也不允许这样写

const QList<Type> zoneList ;

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

我有编译器错误错误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);

BTW是NULL还是aList?您在上面的代码中都有.

这个

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读