我有QList的const正確性問題。Qt QList C3892:不能分配到一個常量的變量
我有一個方法getValue
的簽名我不能改變返回const的雙重這裏
double vs = MinInput->getValue(0, 0);
VS是常量。
我想用此方法的結果來構建QList,並且出現錯誤C3892。
由於我的列表是QList,使用不能添加常量雙(?)
代碼就是這樣
QList<double> minmax;
for (int i = 0; i < 2*(3+othercutoffs_var_len) ; i++ )
minmax.append(0.0);
QSP< const VarInterface<double> > MinInput = ctx.getInputVar<double>(ctx.input(Id::fromString(QL1s("Min")))[0]);
const double vs = MinInput->getValue(0, 0);
minmax.at(0) = vs;
和這個代碼最後一行是讓我陷入麻煩。 (填充與其他這樣的常量列表時其他錯誤雙打)
爲的getValue簽名就是這樣
const TYPE & VarData<TYPE>::getValue(uint r, uint c) const
爲什麼不用at()? – octoback 2013-04-11 07:44:43
因爲'QList :: at'返回無法修改的'const'引用。簽名:'const T&QList :: at(int i)const' – Amartel 2013-04-11 07:46:00
QList使用基於0的索引,就像C++數組一樣。要訪問特定索引位置的項目,可以使用operator []()。在非常量列表上,operator []()返回對該項目的引用,並且可以在賦值的左側使用: – 2013-04-11 07:48:37