Примерное задание контрольной работы по C++

За одну пару нужно написать программу на C++, которая включает:

Условие

Реализовать класс Queue, позволяющий организовать очередь целых чисел на основе массива (или циклического массива).

Очередь позволяет добавлять новые элементы в конец, и извлекать элементы из головы очереди в порядке их добавления.

Интерфейс класса должен поддерживать следующие операции:

Должны быть реализованы: оператор присваивания, конструктор копирования, деструктор.

В случае обнаружения ошибочных данных методы должны генерировать исключения.

Все методы, которые не изменяют состояние объектов, должны быть объявлены константными.

Что должно быть в тестовой программе?

Вызов всех реализованных методов в различных комбинациях.