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

Zaprzyjaźnione klasy i pobieranie danych miedzy nimi

VPS Starter Arubacloud
0 głosów
363 wizyt
pytanie zadane 15 sierpnia 2018 w C i C++ przez Krutek Początkujący (330 p.)
Hej!

Chce stworzyć małą gierke, i chcę aby klasy abstrakcyjne ( w tym wypadku wojownik ) pobrał jedną wartość od innej klasy abstrakcyjnej (miecz) , i tu się pojawia mój problem bo nawet nie wiem czy mój pomysł podziału i podpięcia wszystkiego pod VirtualGameObject ma jakiś sens a co dopiero zaprzyjaźnienie dwóch klas ze sobą,

Link do mojego kodu

https://gist.github.com/krutek/6d6fdbdf48e0652fae613e266ca677dd

Potrzebuje odpowiedzi na następujące pytania:

1) Czy w ogóle mój pomysł dziedziczenia ma jakiś sens ?

2)Czy można tak jak jak jest w kodzie zrobić klase abstrakcyjną od klasy abstrakcyjnej i czy ma to jakikolwiek sens

3) Jak przesłać z klasy bron lub ekwipunek dane o mieczu do klasy wojownik

Dzięki!

1 odpowiedź

0 głosów
odpowiedź 15 sierpnia 2018 przez criss Mędrzec (172,590 p.)
  1. Wygląda sensownie
  2. Tak, można i ma sens
  3. 	void PobierzWartoscAtakuBroni(int obrazenia , int sila , Miecz )
    	{
    		obrazenia = sila + Miecz.WartoscAtakuBroni;
    
    	};

    Nie wiem co próbujesz tu robić. Nie nadałeś nazwy ostatniemu argumentowi. Stwórz sobie w klasie Miecz jakąś metode w stylu `int getAttackVal()` (albo po prostu zostaw WartoscAtakuBroni jako public) i wtedy
    możesz 
     

    	void PobierzWartoscAtakuBroni(int obrazenia , int sila , const Miecz& miecz )
    	{
    		obrazenia = sila + miecz.getAttackVal();
    
    	};

    Druga sprawa, to.. co ma ta funkcja PobierzWartoscAtakuBroni wlasciwie robić? Obecnie nie robi w praktyce nic, bo wynik sumy przypisujesz do zmiennej lokalnej.

komentarz 15 sierpnia 2018 przez Krutek Początkujący (330 p.)
Dzięki za odpowiedź! wszystko ruszyło :) i tak o to dokładnie mi chodziło z funkcją Pobierz...

Tylko teraz jeszcze jedno pytanie mam, bo do klasy wojownik jest zaincludowana klasa miecz a gdybym miał więcej takich klas to jest miecz, topór, włócznia i później analogicznie dla maga jakieś rodzaje magicznych lasek to czy mogę wszędzie tam gdzie zainkludowałem miecz zainkludować po prostu klase abstrakcyjną bron ?
komentarz 15 sierpnia 2018 przez criss Mędrzec (172,590 p.)
Jeśli nigdzie w kodzie nie będziesz potrzebował się odwoływać bezpośrednio do klas pochodnych od Bron (wspomniane miecz, topor, wlocznia...), to tak.
komentarz 16 sierpnia 2018 przez Krutek Początkujący (330 p.)
Ok, Jeszcze raz Wielkie Dzięki!
komentarz 16 sierpnia 2018 przez Krutek Początkujący (330 p.)

W sumie to chciałbym zapytać cię o jeszcze jedną rzecz, mianowicie jak wywołać  to

int PobierzWartoscAtakuBroni(int sila, const Miecz& miecz)
{
    return sila + miecz.WartoscAtakuBroni;
 
};

 

komentarz 16 sierpnia 2018 przez criss Mędrzec (172,590 p.)

Jak to jak wywolac? Jak kazdą inną funkcje

PobierzWartoscAtakuBroni(5, Miecz());

 

btw po definicji funkcji nie stawia się średnika

Podobne pytania

0 głosów
1 odpowiedź 238 wizyt
pytanie zadane 23 marca 2021 w Python przez user125 Początkujący (400 p.)
0 głosów
2 odpowiedzi 2,029 wizyt
pytanie zadane 18 marca 2018 w JavaScript przez OdsetekGlupoty Pasjonat (15,360 p.)

92,455 zapytań

141,263 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!

...