Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Funkcje.. ;/

Ostatnio zmodyfikowano 2011-05-30 18:38
Autor Wiadomość
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:

C/C++
class Player
{
public:
    int x;
    //...
   
} hero[ 6 ];

class Luffa
    : public Player
{
public:
    //...
} lufa[ 6 ];

void MovePlayer( Player, Luffa );

//....

I teraz robię tak:

C/C++
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ć?
P-33663
Elaine
» 2011-05-30 18:11:04
Działa, tylko na kopii obiektu, a chyba nie o to chodzi? ;>
P-33664
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? :)
P-33665
Elaine
» 2011-05-30 18:22:16
Można, niech funkcja przyjmuje referencję (ewentualnie wskaźnik) do obiektu.
P-33666
SeaMonster131
Temat założony przez niniejszego użytkownika
» 2011-05-30 18:29:42
zrobiłem tak:

C/C++
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)
P-33667
dmx81
» 2011-05-30 18:34:47
C/C++
void MovePlayer( Player & h, Luffa & b )
{
    h.x++;
}

raczej o takie cos chodzilo, wiec ta gwiazdke usun ;)
P-33668
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 :)
P-33669
« 1 »
  Strona 1 z 1