Witam, problem opisany w temacie, poniżej deklaracja klasy, a mianowicie rozchodiz się o wskazniki klasy Postać.
Tutaj deklaracja klasy przbieg gry.
class PrzebiegGry
{
int ile_rund;
int Ktory_gracz;
Postac * postac1;
Postac * postac2;
public:
int licznik();
int losuj_gracza();
void tworzenie_postaci();
void usuwanie_postaci();
void przebieg_gry();
PrzebiegGry();
};
Tutaj definicja klasy przebieg gry
void PrzebiegGry::przebieg_gry()
{
int klasa;
cout << "TWORZENIE POSTACI DLA GRACZA NUMER 1" << endl;
do {
cout << "Jezeli chcesz wybrac Maga wcisnij 1, jezeli chcesz wybrac Wojownika wcisnij 2, jezeli chcesz wybrac Lowce wcisnij 3" << endl;
cin >> klasa;
} while( klasa != 1 && klasa != 2 && klasa != 3 );
if( klasa == 1 )
{
do {
cout << "Wybrales Maga, jezeli chcesz wybrac Maga ognia wcisnij 1, jezeli chcesz wybrac Maga wody wcisnij 2" << endl;
cin >> klasa;
} while( klasa != 1 && klasa != 2 );
if( klasa == 1 )
{
cout << "Wybrales Maga ognia" << endl;
Mag_ognia gracz1;
gracz1.rozdzaj_punkty();
postac1 = & gracz1;
}
else
{
cout << "wybrales Maga wody" << endl;
Mag_wody gracz1;
gracz1.rozdzaj_punkty();
postac1 = & gracz1;;
}
}
else if( klasa == 2 )
{
do {
cout << "Wybrales Wojownika, jezeli chcesz wybrac Paladyna wcisnij, jezeli chcesz wybrac Berserka wcisnij 2" << endl;
cin >> klasa;
} while( klasa != 1 && klasa != 2 );
if( klasa == 1 )
{
cout << "Wybrales Paladyna" << endl;
Paladyn gracz1;
gracz1.rozdzaj_punkty();
postac1 = & gracz1;;
}
else
{
cout << "Wybrales Berserka" << endl;
Berserk gracz1;
gracz1.rozdzaj_punkty();
postac1 = & gracz1;
}
}
else if( klasa == 3 )
{
do {
cout << "Wybrales Lowce , jezeli chcesz wybrac Lotra wcisnij 1, jezeli chcesz wybrac Zabojce wcisnij 2" << endl;
cin >> klasa;
} while( klasa != 1 && klasa != 2 );
if( klasa == 1 )
{
cout << "Wybrales Lotra" << endl;
Lotr gracz1;
gracz1.rozdzaj_punkty();
postac1 = & gracz1;
}
else
{
cout << "Wybrales Zabojce" << endl;
Zabojca gracz1;
gracz1.rozdzaj_punkty();
postac1 = & gracz1;
}
}
cout << "TWORZENIE POSTACI DLA GRACZA NUMER 2" << endl;
do {
cout << "Jezeli chcesz wybrac Maga wcisnij 1, jezeli chcesz wybrac Wojownika wcisnij 2, jezeli chcesz wybrac Lowce wcisnij 3" << endl;
cin >> klasa;
} while( klasa != 1 && klasa != 2 && klasa != 3 );
if( klasa == 1 )
{
do {
cout << "Wybrales Maga, jezeli chcesz wybrac Maga ognia wcisnij 1, jezeli chcesz wybrac Maga wody wcisnij 2" << endl;
cin >> klasa;
} while( klasa != 1 && klasa != 2 );
if( klasa == 1 )
{
cout << "Wybrales Maga ognia" << endl;
Mag_ognia gracz2;
gracz2.rozdzaj_punkty();
postac2 = & gracz2;
}
else
{
cout << "Wybrales Maga wody" << endl;
Mag_wody gracz2;
gracz2.rozdzaj_punkty();
postac2 = & gracz2;
}
}
else if( klasa == 2 )
{
do {
cout << "Wybrales Wojownika, jezeli chcesz wybrac Paladyna wcisnij 1, jezeli chcesz wybrac Berserka wcisnij 2" << endl;
cin >> klasa;
} while( klasa != 1 && klasa != 2 );
if( klasa == 1 )
{
cout << "wybrales Paladyna" << endl;
Paladyn gracz2;
gracz2.rozdzaj_punkty();
postac2 = & gracz2;
}
else
{
cout << "wybrales Berserka" << endl;
Berserk gracz2;
gracz2.rozdzaj_punkty();
postac2 = & gracz2;
}
}
else if( klasa == 3 )
{
do {
cout << "Wybrales Lowce , jezeli chcesz wybrac Lotra wcisnij 1, jezeli chcesz wybrac Zabojce wcisnij 2" << endl;
cin >> klasa;
} while( klasa != 1 && klasa != 2 );
if( klasa == 1 )
{
cout << "Wybrales Lotra" << endl;
Lotr gracz2;
gracz2.rozdzaj_punkty();
postac2 = & gracz2;
}
else
{
cout << "Wybrales Zabojce" << endl;
Zabojca gracz2;
gracz2.rozdzaj_punkty();
postac2 = & gracz2;
}
}
postac1->menu();
}
I w ostatniej linijce kiedy odwołuje się do funkcji menu klasy postac1 ( czyli obiektu gracz1) to w programie pokazuje mi się menu klasy postac2. Jeżeli tą linijke umieszcze przed sekcją TWORZENIE POSTACI GREACZA 2 to wszystko jest wporządku i pokazuje się odpowiednie menu. Głowie się nad tym 2h i nie wiem gdzie jest błąd, a program ten odpalam po pół roku i nie przypominam sobie żeby taki błąd występował wczesniej tym bardziej że był to program na zaliczenie.