[英]c++ QVector/Vector issues… const… discards qualifiers
我設置了一個名為tagToken的類。
它有setter函數,一個是void setString(QString)
我已將其定義/聲明為此類
.h文件
void setString(QString string);
Private:
QString stringOfTagToken ;
.cpp文件
void tagToken::setString(QString string)
{
stringOfTagToken = string;
}
當我嘗試運行此代碼時:
if (linePosition == 1)
{
QVector<tagToken> temp(0);
//errors
//temp.at(0).setString(line);
temp.at(0).setString("test");
//tags.at(0).setString(line);
//tags.push_back();
tagTokenCounter++;
}
我收到此錯誤:
C:\\ Dev \\ DiffMatchPatch \\ diffmatchpatch.cpp:316:錯誤:將'const tagToken'作為'this tagToken :: setString(QString)'的'this'參數傳遞'丟棄限定符[-fpermissive] temp.at(0).setString (“測試”);
QVector
的at
函數返回數據為const
。 用at
當你不想(意外)改變矢量數據,或operator[]
一般。
temp[0].setString("test");
QVector :: at()返回一個const ref給你的數據,你不能調用像setString這樣的非const方法
來自http://qt-project.org/doc/qt-4.8/qvector.html#at
const T & QVector::at ( int i ) const
Returns the item at index position i in the vector.
i must be a valid index position in the vector (i.e., 0 <= i < size()).
考慮使用operator []
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.