#include <iostream>
using namespace std;

struct Node{
int data;
Node *next;
};

class Linkstack{
public:
Linkstack();
~Linkstack();
void Push(int x);
void Gettop();
void Pop();
private:
Node *top;
};
Linkstack::Linkstack(){
top=NULL;
}
Linkstack::~Linkstack(){
while(top)
{ Node *p;
p=top->next;
delete top;
top=p;
}
}
void Linkstack::Push(int x){
Node *s;
s=new Node;
s->data=x;
s->next=top;
top=s;
}
void Linkstack::Pop(){
delete top;
} 
void Linkstack::Gettop(){
cout<<top->data;
}
void main()
{
Linkstack s;
s.Push(3);
s.Push(2);
s.Pop();
s.Push(1);
s.Gettop();
}

為什么會出現這樣的情況呢,執行結果是沒錯的!

