Mój problem jest bardzo prosty do wytłumaczenia, otóż spójrzmy najpierw na kawałek kodu"
int rodzaj;
cin >> rodzaj;
cAbstrakcyjna *wsk;
if (rodzaj==1)
{
cWypozyczalnia g1;
wsk= &g1;
}
if (rodzaj==2)
{
cWypozyczalnia2 x1;
wsk= &x1;
}
else
{
cout << "Nieprawidlowy numer opcji, wpisz ponownie: ";
cin>>rodzaj;
}
Otóż w mainie do klasy abstrakcyjnej utworzyłem wskaźnik. Mam dwie dziedziczne klasy i chce w zależności od wpisanej na klawiaturze liczbie - tworzyć obiekty i przypisywać im te wskaźniki.
Problem jest taki: użytkownik podaje wartość 2 do zmiennej rodzaj - program działa, uruchamia wszystkie opcje które chce i jest elegancko. Problem jest gdy poda 1, wtedy kompilator nie wyświetla funkcji, które akurat tworzyłem i odpala się warunek else. Najlepsze jest to, że gdy wpisze 0 to wtedy wyświetla zawartość, którą chcę.
Tu podaje instrukcje, które mają się wywołać:
do
{
wsk->WyswietlKoszyk();
cout << "TWOJ KOSZYK, WYBIERZ INTERESUJACA CIE OPERACJE:"<<endl;
cout << "------------------------------------------"<<endl;
cout << "1. Dodaj gre do koszyka "<<endl;
cout << "2. Usun gre z koszyka "<<endl;
cout << "3. Sprawdz ile gier masz w koszyku "<<endl;
cout << "4. Sprawdz czy Twoj koszyk jest pusty "<<endl;
cout << "5. Wyjdz z programu "<<endl;
cout << "------------------------------------------"<<endl;
cout << "Wybor: ";
cin >> wybor;
switch (wybor)
{
case 1:
wsk->DodajGre();
break;
case 2:
wsk->UsunGre();
break;
case 3:
wsk->LiczbaGier();
break;
case 4:
wsk->PustyKoszyk();
break;
}
}
while (wybor != 5);