Documente Academic
Documente Profesional
Documente Cultură
Raport
Lucrare de laborator nr.6
Programare in C++
VARIANTA 7
A verificat:
Scrob Sergiu
Chisinau 2016
LUCRARE DE LABORATOR NR. 6
Varianta 7
Creaţi clasa abstractă de bază Container cu funcţiile virtuale de inserare şi extragere. Creaţi
clasele derivate Stack şi Queue, în care funcţiile date sunt predefinite. În funcţia main determinaţi
masivul de pointeri la clasa abstractă, cărora li se atribuie adresele obiectelor claselor derivate.
Codul programului:
#include <iostream>
#include <string>
class Container
{
public:
virtual void push(int) = 0;
virtual void pop() = 0;
virtual void show() = 0;
};
Stack(int nb)
{
this->nb = nb;
tab = new int[nb];
index = 0;
}
~Stack()
{
delete [] tab;
2
}
bool isFull()
{
return (index == nb);
}
bool isEmpty()
{
return (index == 0);
}
3
Queue(int n)
{
tab = new int[n];
max_elem = n;
index = 0;
first_elem = 0;
}
bool isFull()
{
return (index >= max_elem);
}
bool isEmpty()
{
return (first_elem == index);
}
4
int main()
{
Container *cont;
int ch;
int n;
if (ch == 0)
return (0);
if (ch == 1)
{
cout << "Input >> ";
cin >> n;
cont->push(n);
}
if (ch == 2)
cont->pop();
if (ch == 3)
cont->show();
system("pause");
}
system("pause");
return (0);
5
Demonstratea programului:
Concluzie:
In rezultatul elaborarii lucrarii date s-a pus baza aplicarii in practica a cunostintelor teoretice
referitoare OOP, Polimorfizm si functii virtuale.
Astfel se poate judeca despre posibilitatile largi acordate de limbajul C++ referitor la
manipularea claselor.