Main.cpp
#include <cstdlib>
#include <iostream>
#include <string.h>
#include "osoba.h"
using namespace std;
/********************** PROGRAM MAIN ***************************/
int main(){
const int liczba_zebranych=3;
osoba zebranie[liczba_zebranych]={ //tablica statyczna
osoba("Albercik",33),osoba("Tomek",16),osoba("Ziutek",23) };
cout<<"Lista osob na zebraniu:"<<endl;
for (int i=0; i<liczba_zebranych; i++) //lista zebranych
zebranie[i].wypisz();
osoba *dyn_tab;
if(dyn_tab=new osoba[liczba_zebranych]){ //tablica dynamiczna
cout <<"Dostep poprzez indeks w tablicy dyn_tab[i]:"<<endl;
for (int i=0; i<liczba_zebranych; i++) //lista zebranych
dyn_tab[i].wypisz();
cout <<"Dostep poprzez dodanie i do wskaznika i wyluskaniem wartosci"<<endl;
for (int i=0; i<liczba_zebranych; i++) //lista zebranych
(*(dyn_tab+i)).wypisz();
cout <<"Dostep poprzez dodanie i do wskaznika i operator ->"<<endl;
for (int i=0; i<liczba_zebranych; i++) //lista zebranych
(dyn_tab+i)->wypisz();
cout <<"Dostep poprzez zwiekszanie wskaznika i operator -> . Na koniec powrot wskaznika"<<endl;
for (int i=0; i<liczba_zebranych; i++) //lista zebranych
(dyn_tab++)->wypisz();
dyn_tab-=liczba_zebranych; //powrot do oryginalnej wartosci wskaznika
} else { cerr<<"Niemozliwe zalozenie tablicy"<<endl;
return EXIT_FAILURE; }
system("PAUSE");
return EXIT_SUCCESS;
}
Osoba.cpp
#include <iostream>
#include <string.h>
#include "osoba.h"
using namespace std;
osoba::osoba() { //konstruktor bez argumentów
cout<<"Podaj nazwisko: ";
cin>>nazwisko;
cout<<"Podaj wiek: ";
cin>>wiek;
}
void osoba::wypisz() {
cout << nazwisko << ", lat : " << wiek << endl;
}
osoba::osoba(char *nazw, int lata) { //konstruktor z argumentami
strcpy(nazwisko, nazw);
wiek=lata;
}
Osoba.h
#ifndef OSOBA_H_
#define OSOBA_H_
/***************** DEFINICJA KLASY: osoba ************************/
class osoba {
char nazwisko[80];
int wiek;
public:
osoba(char *nazw, int lata);
osoba();
void wypisz();
};
/***************** KONIEC DEFINICJI KLASY: osoba *********************/
#endif /* OSOBA_H_ */