#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();
}







为什么会出现这样的情况呢,执行结果是没错的!