Dzi臋ki za pierwszy kod szacun przeogromniasty, a poni偶ej moja wersja.Pozdro
Kod:
#include <iostream>
#include <string>
using namespace std;
//klasa index
class Index
{
unsigned numer_indeksu;
public:
Index (unsigned numer_indeksu)
{
this->numer_indeksu = numer_indeksu;
}
int Zwroc_numer_indeksu()
{
return numer_indeksu;
}
};
//-----------------------------------------------------------
// klasa student - agreguje klase index
class Student
{
Index nr_indeksu;
string imie, nazwisko, kod_pocztowy;
unsigned wiek;
public:
Student(string imie, string nazwisko, unsigned wiek, string kod_pocztowy, unsigned indeks):nr_indeksu(indeks)
{
this->imie = imie;
this->nazwisko = nazwisko;
this->wiek = wiek;
this->kod_pocztowy = kod_pocztowy;
}
// klasa wirtualna wyswietl
void virtual WyswietlInfo()
{
cout << "Imie: " << imie << endl;
cout << "Nazwisko: " << nazwisko << endl;
cout << "Wiek: " << wiek << endl;
cout << "Kod_pocztowy: " << kod_pocztowy << endl;
cout << "Nr indeksu: " << nr_indeksu.Zwroc_numer_indeksu() << endl;
}
};
//-----------------------------------------------------------
//klasa student polski dziedziczy po student
class StudentPolski : public Student
{
public:
StudentPolski(string imie, string nazwisko, unsigned wiek, string kod_pocztowy, unsigned indeks) : Student(imie, nazwisko, wiek, kod_pocztowy, indeks)
{
}
void WyswietlInfo()
{
Student::WyswietlInfo();
cout << endl << endl;
}
};
//-----------------------------------------------------------
// klasa student zagraniczny / dziedziczy po student unikalne dla tej klasy to kraj pochodzenia
class StudentZagraniczny : public Student
{
string kraj_pochodzenia;
public:
StudentZagraniczny(string imie, string nazwisko, unsigned wiek, string kod_pocztowy, unsigned indeks, string kraj_pochodzenia) : Student(imie, nazwisko, wiek, kod_pocztowy, indeks)
{
this->kraj_pochodzenia = kraj_pochodzenia;
}
void WyswietlInfo()
{
Student::WyswietlInfo();
cout << "Narodowsc: " << kraj_pochodzenia << endl << endl;
}
};
//-----------------------------------------------------------
//Funkcja MAIN
int main()
{
cout << "Lista studentow: " << endl << endl<< endl;
const unsigned LICZBA_STUDENTOW = 10;
Student * Student[LICZBA_STUDENTOW];
//studenci polscy
Student[0] = new StudentPolski("Darth", "Vader", 45, "58-333", 1);
Student[1] = new StudentPolski("Luck", "Skywalker", 23, "58-334", 2);
Student[2] = new StudentPolski("Leya", "Oregana", 22, "58-335", 3);
Student[3] = new StudentPolski("Donald", "Duck", 99, "58-336", 4);
//studenci zagraniczni
Student[4] = new StudentZagraniczny("Yoda", "Master", 19, "01-123", 5, "Ukraina");
Student[5] = new StudentZagraniczny("Obi", "Kenobi", 29, "02-321", 6, "Czechy");
Student[6] = new StudentZagraniczny("Jabba", "Hat", 49, "01-6666", 7, "Uklad Zerga");
Student[7] = new StudentZagraniczny("Han", "Solo", 25, "02-7777", 8, "Uklad Patos");
// wyswietla studentow
Student[0]->WyswietlInfo();
Student[1]->WyswietlInfo();
Student[2]->WyswietlInfo();
Student[3]->WyswietlInfo();
Student[4]->WyswietlInfo();
Student[5]->WyswietlInfo();
Student[6]->WyswietlInfo();
Student[7]->WyswietlInfo();
system("PAUSE");
return 0;
}