【发布时间】:2013-04-17 15:10:32
【问题描述】:
我想根据指针的值为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 分配两个不同的值?那么正确的写法是什么?
【问题讨论】:
标签: c++ constants variable-assignment conditional-statements const-correctness