Otóż mam mały problem z metodą w mojej klasie bo nie odczytuje ona wartosci z klasy "przyjaznej" i przez to porównanie wartości obydwu obiektów traci sens
main.cpp
#include <iostream>
#include <stdio.h>
#include "respawn.h"
using namespace std;
main()
{
Potwor mon;
mon.load();
mon.show();
mon.respawn();
Postac ch;
ch.load(); //metoda oddziedziczona po klasie Character
ch.show(); //metoda oddziedziczona po klasie Character
ch.porownaj();
return 0;
}
respawn.h
#include <iostream>
#include <stdio.h>
using namespace std;
class Character //klasa z ktorej dziedzicza klasy Postac i Potwor !
{
protected:
string nazwa, np, nP;
int x, y;
int sila;
int wytrzymalosc;
float zdrowie;
int inteligencja, zrecznosc;
char odp;
int wynik, wynik1;
public:
void load();
void show();
void respawn();
};
class Postac : public Character {
public:
Postac(string = "Mr.Nobody", int = 5, int = 5, float = 100, int = 5, int = 5); //konstruktor i wartosci domyslne tego konstruktora
~Postac(); //destruktor
friend class Potwor;
void porownaj();
};
class Potwor : public Character {
public:
Potwor(string = "Potwor", int = 5, int = 5, float = 100, int = 5, int = 5); //konstruktor i wartosci domyslne tego konstruktora
~Potwor(); //destruktor
friend class Postac;
friend void porownaj();
void load();
void show();
void respawn();
};
respawn.cpp
#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include "respawn.h"
using namespace std;
int wynik, wynik1;
void Character::load() // metoda wczytujaca dane postaci
{
cout << "Czy chcesz wprowadzić Atrybuty Postaci(t/n)?";
cin >> odp;
if (odp == 't' || odp == 'T') {
cout << "\nPodaj \033[3;96mNazwe Postaci\033[0m:";
cin >> nazwa;
cout << "Podaj \033[93mSile\033[0m " << nazwa << "'a:";
cin >> sila;
cout << "Podaj \033[95mWytrzymalosc\033[0m " << nazwa << "'a:";
cin >> wytrzymalosc;
cout << "Podaj Ilosc \033[91mZdrowia\033[0m " << nazwa << "'a:";
cin >> zdrowie;
cout << "Podaj \033[32mZrecznosc\033[0m " << nazwa << "'a:";
cin >> zrecznosc;
cout << "Podaj \033[94mInteligencje\033[0m " << nazwa << "'a:";
cin >> inteligencja;
cout << "\n";
}
}
void Character::show() // metoda ukazująca dane postaci
{
system("clear");
cout << "\033[3;96mNazwa Postaci\033[0m:" << nazwa << endl
<< "\033[93mSila\033[0m:" << sila << endl
<< "\033[95mWytrzymalosc\033[0m:" << wytrzymalosc << endl
<< "\033[91mZdrowie\033[0m:" << zdrowie << endl
<< "\033[32mZrecznosc\033[0m:" << zrecznosc << endl
<< "\033[94mInteligencja\033[0m:" << inteligencja << endl;
nP = nazwa;
wynik1 = sila + wytrzymalosc + zrecznosc + inteligencja / zdrowie;
}
Postac::Postac(string n, int s, int w, float zdr, int zr,
int intel) // konstruktor klasy Postac
{
nazwa = n;
sila = s;
wytrzymalosc = w;
zdrowie = zdr;
zrecznosc = zr;
inteligencja = intel;
}
Postac::~Postac() // destruktor klasy Postac
{
cout << "\nJezeli widzisz ten komunikat to znaczy,ze twoj komputer zniknie "
"za…1…2…3 BOOM!"
<< endl;
}
void Potwor::load() // metoda wczytująca dane potworka
{
cout << "Czy chcesz wprowadzić Atrybuty Potwora(t/n)?";
cin >> odp;
if (odp == 't' || odp == 'T') {
cout << "\nPodaj \033[3;96mNazwe Potwora\033[0m:";
cin >> nazwa;
cout << "Podaj \033[93mSile\033[0m " << nazwa << "'a:";
cin >> sila;
cout << "Podaj \033[95mWytrzymalosc\033[0m " << nazwa << "'a:";
cin >> wytrzymalosc;
cout << "Podaj Ilosc \033[91mZdrowia\033[0m " << nazwa << "'a:";
cin >> zdrowie;
cout << "Podaj \033[32mZrecznosc\033[0m " << nazwa << "'a:";
cin >> zrecznosc;
cout << "Podaj \033[94mInteligencje\033[0m " << nazwa << "'a:";
cin >> inteligencja;
cout << "\n";
}
}
void Potwor::show() // metoda ukazująca dane potworka
{
system("clear");
cout << "\033[3;96mNazwa Potwora\033[0m:" << nazwa << endl
<< "\033[93mSila\033[0m:" << sila << endl
<< "\033[95mWytrzymalosc\033[0m:" << wytrzymalosc << endl
<< "\033[91mZdrowie\033[0m:" << zdrowie << endl
<< "\033[32mZrecznosc\033[0m:" << zrecznosc << endl
<< "\033[94mInteligencja\033[0m:" << inteligencja << endl;
np = nazwa;
wynik = sila + wytrzymalosc + zrecznosc + inteligencja / zdrowie;
}
void Potwor::respawn() // metoda do respawnu potworkow ver.Pre-Alpha
{
cout << "\nIle chcesz tych Potworów?" << endl;
cin >> x;
cout << "++++++++++++++++++++++++++++++++++++++++++\n";
for (y = 1; y <= x; y++) {
cout << "+ " << y << " " << nazwa << " +"
<< endl;
} // koniec fora
cout << "++++++++++++++++++++++++++++++++++++++++++\n";
} // koniec voida
Potwor::Potwor(string n, int s, int w, float zdr, int zr,
int intel) // konstruktor
{
nazwa = n;
sila = s;
wytrzymalosc = w;
zdrowie = zdr;
zrecznosc = zr;
inteligencja = intel;
}
Potwor::~Potwor() // destruktor
{
cout << "\nMozna dzialac na nowo :D" << endl;
}
void Postac::porownaj()
{
if (wynik < wynik1) {
cout << np << " Przegralby z " << nP;
}
else if (wynik > wynik1)
cout << np << " Wygralby z " << nP;
else if (wynik == wynik1) {
cout << "Bylby remis";
}
}