簡體   English   中英

c ++ QVector / Vector問題... const ...丟棄限定符

[英]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 (“測試”);

QVectorat函數返回數據為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM