c++ 数据结构 顺序栈 这两种写法有什么区别出栈?

c++顺序栈中这两种出栈的写法有什么区别吗??

template <class T>
T SeqStack<T>::Pop()             //出栈操作,将栈顶元素弹出
{
    /*T x;
    if (Empty())throw"下溢";
    x=data[top--];
    return x;*/

    if (top == -1)throw"下溢";
    return data[top--];
}

如果empty的实现代码是
int empty()
{
return top == -1;
}
那么两者没有区别
但是写empty可读性更好