Jak napisać definicję dla tego skrawku kodu.

0

Znajduje się w klasie 'Animation':

Player* getPlayer();

Z tego co rozumuję, to wskaźnik i jednocześnie metoda klasy Animation.

I jak teraz mam napisać jej definicję, żeby mógł skorzystać z 'this' ?

Jeśli zapiszę tak:

Player getPlayer() {};
  • to się nie da skorzystać z 'this'

Próbowałem już chyba na wszystkie sposoby:

Player Player::getPlayer() {};
Player Animation::getPlayer() {};

i wyskakują błędy.

Więc jak?

@Edit

Zapisałem tak i niby działa, ale o to czy prawidłowo spytam się już autorowi pomysłu.

Player *Animation::getPlayer()
{

	Player *wsk = this->player;
	return wsk;
}
0

Sygnatura mówi, że funkcja zwraca Player*, gdzie masz w tych definicjach instrukcję return?

Jakie this? I co to znaczy korzystać z this?

0
twonek napisał(a):

Sygnatura mówi, że funkcja zwraca Player*, gdzie masz w tych definicjach instrukcję return?

Jakie this? I co to znaczy korzystać z this?

Jej przecież to był pseudo kod.

Player *Animation::getPlayer()
{

	Player *wsk = this->player;
	return wsk;
}

Dobrze?

0
gamecreatorr napisał(a):
Player *Animation::getPlayer()
{

	Player *wsk = this->player;
	return wsk;
}

Dobrze?

Nie znam kontekstu, więc nie wiem czy dobrze, ale całe ciało tej funkcji można skrócić do

return player;
0
twonek napisał(a):
gamecreatorr napisał(a):
Player *Animation::getPlayer()
{

	Player *wsk = this->player;
	return wsk;
}

Dobrze?

Nie znam kontekstu, więc nie wiem czy dobrze, ale całe ciało tej funkcji można skrócić do

return player;

No właśnie chyba niezbyt dobrze, bo jak debuguje, to dostaje "NULL".

2
gamecreatorr napisał(a):

No właśnie chyba niezbyt dobrze, bo jak debuguje, to dostaje "NULL".
To znaczy, że ta zmienna jest nullem w momencie wywołania tej metody. No chyba nie sądzisz, że przy Twojej wersji dostaniesz coś innego niż null?

0

this to wskaźnik klasy na samą siebie, wywołany z jednego obiektu będzie wskaźnikiem do niego... player jest polem tej klasy(zapewne) więc możesz z niej korzystać bez this

0
twonek napisał(a):
gamecreatorr napisał(a):

No właśnie chyba niezbyt dobrze, bo jak debuguje, to dostaje "NULL".
To znaczy, że ta zmienna jest nullem w momencie wywołania tej metody. No chyba nie sądzisz, że przy Twojej wersji dostaniesz coś innego niż null?

Jejku, jak chcesz zobaczyć o co mi chodzi, to zajrzyj do drugiego tematu.

Wywołuję ją, w innym pliku i nie działa.

@Edit

Dobra już działa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1