QVector에 저장된 구조체의 상태 변경
문제
코드 의이 부분에 무엇이 잘못되었는지 이해할 수 없습니다 :
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의 님이
._aliances[i].setFirstTeam(firstAlianceTeam);
제휴하지 않습니다 StackOverflow