in your QueuItem constructor
pData = mData; - this should be opposite
you cannot access deleted pointerCode:delete mpHead; mpHead = mpHead->getNext();
your const correctness went out of window
your printList changes the head pointer making it impossible to remove head or print list once again