12.07.2015 Views

Cursul POO - Informatica aplicata si programare - Universitatea ...

Cursul POO - Informatica aplicata si programare - Universitatea ...

Cursul POO - Informatica aplicata si programare - Universitatea ...

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Curs 1-2. Să ne reamintim … 39Ce am declarat de fapt? O clasă ElementLista, care implementează o structură dedate caracteristică listei <strong>si</strong>mplu înlănŃuite. Cum datele sunt private, dar vor fi folo<strong>si</strong>teîn alte clase, le-am declarat pe acestea prietene. Deoarece aceste clase nu au fost încădeclarate, ele trebuie anunŃate la începutul fişierului. Constructorul clasei construieşteimplicit un obiect cu câmpul valoare=0.Am declarat apoi o clasă abstractă Baza, care declară funcŃiile virtuale purePush() şi Pop() şi funcŃia virtuală Afisez(). Clasa conŃine un pointer la clasaElementLista, care va fi de fapt capul listei <strong>si</strong>mplu înlănŃuite. Constructorul claseiconstruieşte acest pointer implicit NULL ( să ne reamintim că câmpul valoare eraimplicit 0 din construcŃia obiectului ElementLista). În exemplu sunt date douămodalităŃi de implementare a constructorului : cu listă de iniŃializare şi respectiv„cla<strong>si</strong>c”. În continuare sunt declarate clasele derivate din clasa de bază, care vorimplementa stiva şi respectiv coada.Fişierul sursă pentru programul exemplu va fi:#include #include "Liste.h"ElementLista::ElementLista(int i){valoare=i;urmatorul=NULL;}Baza::~Baza(){ElementLista* ptr=CapLista;while (CapLista!=NULL){CapLista=CapLista->urmatorul;delete ptr;ptr=CapLista;}}void Baza::Afisez(){ElementLista* ptr=CapLista;if (ptr==NULL)cout urmatorul=CapLista;CapLista=ptr;}int Stiva::Pop(){int valret;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!