Реализация класса для работы со стеком в С++

Стек — структура данных представляющая собой список элементов, организованных по принципу «последним пришёл — первым вышел» wikipedia.  Программа будет написана с использованием библиотеки Qt, и то в одном не существенном месте — вывод элементов стека в консоль. Преобразовать на чистый С++ думаю не так уж и сложно. Стек будет представлен в статическом массиве из 100 элементов.  Работать с этим массивом мы будем через класс stack.

И так, опишем интерфейс класса stack в файле stack.h:

 

Напоминаю, что  список элементов, организованный по принципу «последним пришёл — первым вышел», соответственно, под первым элементом имеется ввиду последний добавленный.

Функция get() в качестве формального параметра принимает номер элемента, который мы хотим получить, и возвращает значение этого элемента. Если элемент не существует, то функция вернет -1.

Функция add в качестве формального параметра принимает число, которое необходимо добавить в стек, и возвращает 1 в случае успешного добавления, и -1 если стек переполнен.

Теперь опишем все методы класса stack в файле stack.cpp:

 

У нас статический массив вмещает в себя 100 элементов. Индексы от 0 до 99. Соответственно сотый элемент будет под индексом 99. Строка вида if(this->get_first()>99) return -1; проверяет номер первого элемента, и если тот равен 99, то добавление новых элементов невозможно, так как массив переполнен. Функция вернут значение -1.

Теперь собственно напишем пару строк кода, где мы протестируем наш класс.
Файл main.cpp (далее приведенный код не является полным содержанием файла):

 

В результате мы получаем следующее консольное приложение:

Stack