Sfml - funkcja przyjmująca sf::vector2f i odejmująca pewną liczbę od jego składników x,y - błąd
Ostatnio zmodyfikowano 2017-02-23 02:58
latajacaryba Temat założony przez niniejszego użytkownika |
Sfml - funkcja przyjmująca sf::vector2f i odejmująca pewną liczbę od jego składników x,y - błąd » 2017-02-22 18:55:22 Witam, napisałem krótką funkcję, która odejmuje od obiektu vector2f pewną liczbę (podaną przez uzytkownika), jednak jest problem, wklejam kod i log: sf::Vector2f konwert( sf::Vector2f & vec, float & x ) { vec.x -= x; vec.y -= x; return vec; }
if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::O ) { obrazek.setScale( konwert( obrazek.getScale(), 0.05 ) ); }
E:\C++\sfml\smfl.cpp||In function 'int main()':| E:\C++\sfml\smfl.cpp|60|error: invalid initialization of reference of type 'sf::Vector2f& {aka sf::Vector2<float>&}' from expression of type 'const Vector2f {aka const sf::Vector2<float>}'| E:\C++\sfml\smfl.cpp|4|note: in passing argument 1 of 'sf::Vector2f konwert(sf::Vector2f&, float&)'| ||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
Linia 4 to deklaracja funkcji konwert, a linia 60 to jej wywołanie. W czym jest błąd? |
|
Saran |
» 2017-02-22 19:22:54 W referencji, jak sam błąd mówi. |
|
michal11 |
» 2017-02-22 21:59:17 Przecież masz wszystko napisane, chcesz przekazać const referencję na Vector do funkcji która oczekuje referencji (i modyfikuje przesłany obiekt). Zresztą ta twoja funkcja jest trochę nielogiczna, zwracasz przez kopię obiekt który przekazujesz przez referencję, albo przekazuje przez const referencję i tylko z niego pobieraj dane (dobry pomysł) albo zwracaj void i modyfikuj przekazywany obiekt (gorszy pomysł). |
|
latajacaryba Temat założony przez niniejszego użytkownika |
» 2017-02-23 02:58:27 Nie zwróciłem przez referencje chyba z przyzwyczajenia ;p. Funkcja już poprawiona i działa. Dziękuję. Temat zamykam. |
|
« 1 » |