Witam.
Mam pewien problem związany z klasami w C++. Mam klasę Mag utworzoną z abstrakcyjnej klasy Postać i chcę użyć jej zmiennych w odrębnej klasie Lokacja. Tylko nie wiem w jaki sposób je przekazać.
Na razie istnieje tylko jedna klasa utworzona polimorficznie. Na razie chcę dopracować wszystko na jednej klasie, dodając później tylko kolejne mając już podstawę.
KLASA ABSTRAKCYJNA I KLASA POSTAC
#include <iostream>
#include <windows.h>
#include <cstdlib>
using namespace std;
class Postac
{
friend class Lokacja;
public:
virtual void statystyki() = 0;
};
class Mag :public Postac
{
friend class Lokacja;
int zdrowie = 75;
int mana = 125;
int sila = 10;
int zrecznosc = 12;
int talent_mag = 2;
int akt_zdrowie = 75;
int akt_mana = 125;
int lvl = 1;
int exp = 1;
public:
void statystyki();
};
KLASA LOKACJA
#include <iostream>
#include <windows.h>
#include <cstdlib>
using namespace std;
class Lokacja
{
void staty(); // W tej metodzie chce uzyc zmiennych z klasy Postac,
}; // powiedzmy, że zmiennej lvl
A w ten sposób rozwiązałem ustawianie wskaźnika:
Mag mg;
Postac *kto;
kto = &mg;
Nie wiem po prostu jak wykorzystać np. zmienną lvl w klasie Lokacja. Wysłać tam wkaźnik jako argument? Bo stricte obiektu nie mogę wysłać, ze względu na to, że w przyszłości dodam kilka innych klas wybieranych poprzez switcha, a to będzie wymagało powielenia kodu dla każdej z klas. Myślę, że da się to rozwiązać unikając niepotrzebnej redundancji.