Я бы хотел ответить на несколько вопросов. Во-первых, я думаю, что у GMan, TPPI и Vinay есть хорошие моменты. В этом FAQ объясняется, почему вызов деструктора для локальной переменной является плохой идеей.
Я понимаю, что это просто простая домашняя задача, и вы, вероятно, просто пытаетесь облегчить свой класс стека, но вы могли бы рассмотреть использование класса контейнера вместо массива символов в вашем классе стека.
Далее, я не уверен, что ваши функции emptystack и create делают то, что вы думаете, они делают. Когда вы объявляете свои исходные и обращенные классы стека в основной программе, память выделяется для вашего внутреннего массива символов. В этом случае нет необходимости иметь функцию создания. Возможно, если бы вы выделяли память в куче для вашего символьного массива, вы бы поместили этот код в функцию create (если по какой-то причине решили оставить его вне конструктора), но здесь это не так.
Точно так же emptystack ничего не делает. Было бы лучше, если бы в пустом стеке переменная стоп-элемента была установлена на 0. По крайней мере, таким образом стек будет казаться пустым в следующий раз, когда кто-то попытается его использовать.
Можно еще много сказать об этом классе, но было бы лучше, если бы вы попробовали некоторые из предложенных здесь советов, таких как использование std :: stack и отладка. Это, в конце концов, ваше домашнее задание: оно поможет вам намного больше в будущем, если вы сами найдете решение!