
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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)