#pragma once struct QueueNodeT; using ItemT = int; const ItemT DEFAULT_ITEM{0}; class QueueT { public: QueueT(); QueueT(const QueueT & other); ~QueueT(); QueueT & operator = (const QueueT & other); void Enqueue(ItemT item); void Dequeue(void); ItemT Front(void) const; size_t Size(void) const; private: void CopyQueue(const QueueT & other); size_t count; QueueNodeT *front, *rear; };