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语句中定义. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |