OOP in C++ - prof. Claudio Maccherani - Perugia - 2016
OOP (Incapsulamento - Pila)
// "PilaOOP.cpp" - Claudio Maccherani, 2016 #include
using namespace std; // definizione classe del dato astratto pila class Pila { static const int N=11; int p[N]; int top; public: Pila(); void Contenuto(); int Pop(); void Push(int elemento); }; // definizione metodi della classe pila Pila::Pila() // costruttore { for(int i=0;i < N;i++) p[i]=0; top=0; cout << "Pila costruita ("<
0;i--) { cout << "|\t"<< p[i] << "\t|"; if (i!=top) cout<<"\n"; else cout<<" <-- Top\n"; } cout<<"+---------------+\n"; } } void Pila::Push(int elemento) // inserimento in pila, set() { if (top == N-1) { cout << "\nPila PIENA, elemento NON inserito !\n"; } else { top++; p[top] = elemento; } } int Pila::Pop() // estrazione dalla pila, get() { int dato; if (top == 0) { dato=-1; cout << "\nPila VUOTA, nessun emento da estrarre !\n"; } else { dato = p[top]; p[top] = 0; top--; } return dato; } main(){ int scelta,dato; Pila P; // dichiarazione istanza di pila (e costruzione oggetto P) do { cout << "\n\n Gestione PILA (oop)\n\n"; cout << "1 - inserimento elemento in pila (Push)\n"; cout << "2 - estrazione elemento dalla pila (Pop)\n"; cout << "3 - visualizzazione stato della pila\n"; cout << " scegli (0=fine) "; cin>>scelta; if (scelta==1) { cout<<"\ndato da inserire: "; cin>>dato; P.Push(dato); } if (scelta==2) { dato = P.Pop(); if (dato!=-1) { cout<<"\ndato estratto:"<