C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c将值赋给if … else中的const QList大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想根据指针的值为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语句中定义.

大佬总结

以上是大佬教程为你收集整理的c将值赋给if … else中的const QList全部内容,希望文章能够帮你解决c将值赋给if … else中的const QList所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。