문제

코드 의이 부분에 무엇이 잘못되었는지 이해할 수 없습니다 :

struct aliance {

    ...

    void setFirstTeam(const team& _team) {
        firstTeam = _team;
    }

    void setSecondTeam(const team& _team) {
        secondTeam = _team;
    }

}     

QVector< aliance > _aliances;  

...     

_aliances.at(i).setFirstTeam(firstAlianceTeam);
_aliances.at(i).setSecondTeam(secondAlianceTeam);
.

오류가 발생합니다 :

passing 'const aliance' as 'this' argument of 'void aliance::setFirstTeam(const team&)' discards qualifiers [-fpermissive]
passing 'const aliance' as 'this' argument of 'void aliance::setSecondTeam(const team&)' discards qualifiers [-fpermissive]
.

나는 이미이 두 함수의 적어도 모든 변종을 const와 하나없이 재 시도했습니다.

도움이 되었습니까?

해결책

QVector<T>::at()const T&를 반환합니다. 즉, GeneraCododiceTag 코드 기능 (예 : setFirstTeam() 함수)에서 비 Const 멤버 함수를 호출 할 수는 없습니다.QT는 QT의 QT의 COPY OF-WRITE SEMANTICS와 관련된 exiving @PEPPE 덕분에 QT의 님이 operator[]의 과부하를 모두 제공하므로 대신 다음을 수행해야합니다. < p>

_aliances[i].setFirstTeam(firstAlianceTeam);
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top