[C++] Funkcje.. ;/
Ostatnio zmodyfikowano 2011-05-30 18:38
SeaMonster131 Temat założony przez niniejszego użytkownika |
[C++] Funkcje.. ;/ » 2011-05-30 17:47:06 Witam :) :) Otóż tego problemu sam nie rozwiąże niestety. Spójrzcie: class Player { public: int x; } hero[ 6 ];
class Luffa : public Player { public: } lufa[ 6 ];
void MovePlayer( Player, Luffa );
I teraz robię tak: void SeePlayer() { MovePlayer( hero[ 0 ], lufa[ 0 ] ); }
void MovePlayer( Player h, Luffa b ) { h.x++; } Czyli mam 2 klasy, i teraz w funkcji zmieniam zmienne w tych klasach. Niby wszystko ok, błędów nie ma, lecz niestety - tak jakby to h.x++; nie działa w tej funkcji. Kiedy wywale to z funkcji to jest ok... O co może chodzić? |
|
Elaine |
» 2011-05-30 18:11:04 Działa, tylko na kopii obiektu, a chyba nie o to chodzi? ;> |
|
SeaMonster131 Temat założony przez niniejszego użytkownika |
» 2011-05-30 18:14:25 Tak, nie o to chodzi :) A można by zrobić tak, żeby ta funkcja działała na "normalnym" obiekcie? :) |
|
Elaine |
» 2011-05-30 18:22:16 Można, niech funkcja przyjmuje referencję (ewentualnie wskaźnik) do obiektu. |
|
SeaMonster131 Temat założony przez niniejszego użytkownika |
» 2011-05-30 18:29:42 zrobiłem tak: class Player { } * hero[ 6 ];
To błędu nie ma, lecz aplikacje wywala przy tej linijce: hero[ 0 ]->img = al_load_bitmap( "media/czolg_1.bmp" ); (Allegro5) |
|
dmx81 |
» 2011-05-30 18:34:47 void MovePlayer( Player & h, Luffa & b ) { h.x++; } raczej o takie cos chodzilo, wiec ta gwiazdke usun ;) |
|
SeaMonster131 Temat założony przez niniejszego użytkownika |
» 2011-05-30 18:38:22 A no tak..jeju, przepraszam hehe :)
Ok, wszystko działa jak należy :)
Dzięki wielkie :) |
|
« 1 » |