• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Używanie zmiennych innej klasy

VPS Starter Arubacloud
0 głosów
378 wizyt
pytanie zadane 11 listopada 2020 w C i C++ przez mikilorix1029 Nowicjusz (120 p.)

Witam, jestem początkującym w c++ i mam pewnien problem. Posiadam dwie klasy class Skrzynki i class Gracz. W klasie Gracz występują takie zmienne jak: int xl = 100, yl = 100, h = 200;  float dxl = 0, dyl = 0;

Teraz potrzebuje zmiennych (yl, dyl i h) do metody w klasie Skrzynki.

Poniżej jest metoda:

void Skrzynki::ustaw()
{
	if (yl < h)
	{
		for (int i = 0; i < 10; i++)
		{
			yl = h;
			skrzynki[i].y = skrzynki[i].y - dyl;
			if (skrzynki[i].y > 600)
			{
				skrzynki[i].y = 0;
				skrzynki[i].x = rand() % 800;
			}
		}
	}
}

Czytałem o dziedziczeniu, ale nie wiem do końca jak to zastosować. Z góry dziękuję :)

komentarz 11 listopada 2020 przez wizarddos Nałogowiec (25,130 p.)
Potrzebujesz oryginalnych zmiennych z klasy Skrzynki?
komentarz 11 listopada 2020 przez mikilorix1029 Nowicjusz (120 p.)
Niestety nie za bardzo rozumiem pytania :(
komentarz 11 listopada 2020 przez wizarddos Nałogowiec (25,130 p.)
chodzi mi o to że potrzebujesz zmiennej np. xl z klasy Gracz dla funkcji z klasy Skrzynki . Jeżeli tak to może zaprzyjaźń ze sobą te klasy albo uczyń zmienne publicznymi?
komentarz 11 listopada 2020 przez mikilorix1029 Nowicjusz (120 p.)
Potrzebuje. Zmienne robiłem publiczne i nic nie działa. Spróbuję je zaprzyjaźnić i napisze czy coś wyszło :)
komentarz 11 listopada 2020 przez wizarddos Nałogowiec (25,130 p.)
a jaki był komunikat błędu?
komentarz 11 listopada 2020 przez tkz Nałogowiec (42,000 p.)

@mikilorix1029, Nie możesz przekazać obiektu do metody ustaw?

komentarz 11 listopada 2020 przez mikilorix1029 Nowicjusz (120 p.)

@wizadkol123, komunikatu nie było. Po prostu po wywołaniu funkcji w mainie, nic sie nie działo

komentarz 11 listopada 2020 przez mikilorix1029 Nowicjusz (120 p.)

@tkz, a w jaki sposób to zrobić ?

1
komentarz 11 listopada 2020 przez tkz Nałogowiec (42,000 p.)
void Skrzynki::ustaw(Gracz& gracz)
{
    if (gracz.yl < gracz.h)
    {
        for (int i = 0; i < 10; i++)
        {
            gracz.yl = gracz.h;
            skrzynki[i].y = skrzynki[i].y - gracz.dyl;
            if (skrzynki[i].y > 600)
            {
                skrzynki[i].y = 0;
                skrzynki[i].x = rand() % 800;
            }
        }
    }
}

Plus/minus tak. 

komentarz 11 listopada 2020 przez mikilorix1029 Nowicjusz (120 p.)
Niestety też nie działa :(
komentarz 11 listopada 2020 przez mikilorix1029 Nowicjusz (120 p.)

@tkz, Bo rozumiem, że odziedziczyć tak czy siak trzeba

komentarz 11 listopada 2020 przez mikilorix1029 Nowicjusz (120 p.)
Dobra, znalazłem błąd, po prostu źle metodę zapisałem. Dziękuję wszystkim za odpowiedzi :)
komentarz 11 listopada 2020 przez tkz Nałogowiec (42,000 p.)
Musiałbyś bardziej opisać problem. Z tego co rozumiem potrzebujesz dostępu do pól innej klasy, a nie, że chcesz ją rozszerzyć. Dziedziczenie kompletnie nie pomoże. Jeżeli problem jest taki, jak go zrozumiałem.
komentarz 11 listopada 2020 przez mikilorix1029 Nowicjusz (120 p.)
Problem już rozwiązany po przekazaniu obiektu do metody :) Dzięki wielkie

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 268 wizyt
pytanie zadane 2 maja 2020 w C# przez Jacob7 Użytkownik (540 p.)
0 głosów
3 odpowiedzi 473 wizyt
0 głosów
1 odpowiedź 1,317 wizyt
pytanie zadane 28 lipca 2015 w C# przez marcin02 Nowicjusz (140 p.)

92,454 zapytań

141,262 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...