[C++] error: passing `const RObiekt' as `this' argument of `void RObiekt::aktualizujPolozenie()' discards qualifiers|
Ostatnio zmodyfikowano 2012-09-28 21:45
ridic14 Temat założony przez niniejszego użytkownika |
[C++] error: passing `const RObiekt' as `this' argument of `void RObiekt::aktualizujPolozenie()' discards qualifiers| » 2012-09-28 16:11:44 Mam pewien problem którego nie znam rozwiązania(Korzystam z SFML 2.0): Kod oczywiście żywcem ściągnięty z kursu... do tego: i->aktualizujPolozenie(); przyczepia się to: error: passing `const RObiekt' as `this' argument of `void RObiekt::aktualizujPolozenie()' discards qualifiers| i napomina o(void RObiekt::aktualizujPolozenie()) : void RObiekt::aktualizujPolozenie() { if( ruchX > fPredkosc ) ruchX = fPredkosc; if( ruchX <- fPredkosc ) ruchX = - fPredkosc; if( ruchY > fPredkosc ) ruchY = fPredkosc; if( ruchY <- fPredkosc ) ruchY = - fPredkosc; x += ruchX; y += ruchY; ruchX = 0; ruchY = 0; } I chciałbym się dowiedzieć czego wymaga ode mnie ten błąd: error: passing `const RObiekt' as `this' argument of `void RObiekt::aktualizujPolozenie()' discards qualifiers| |
|
DejaVu |
» 2012-09-28 18:44:20 Podaj deklarację funkcji/metody z której to wywołujesz oraz typ zmiennej 'i'. Generalnie brzmi to jakby 'i' było const_iteratorem. |
|
ridic14 Temat założony przez niniejszego użytkownika |
» 2012-09-28 21:17:56 To chyba to: Wygląda na to że to jest const iterator for( VObiektyT::const_iterator i = vObiekty.begin(); i != vObiekty.end(); ++i ) i->aktualizujPolozenie(); ale co dalej |
|
DejaVu |
» 2012-09-28 21:35:52 Zamień const_iterator na iterator i będzie działało. const_iterator mówi, że obiekt będzie używany tylko do odczytu, a zatem wywoływanie metod, które nie mają na końcu 'const' nie jest możliwe oraz ewentualna próba zakończy się błędem kompilacji. |
|
ridic14 Temat założony przez niniejszego użytkownika |
» 2012-09-28 21:45:52 tak teraz działa dzięki za pomoc |
|
« 1 » |