请问一个结构体栈的有关问题

请教一个结构体栈的问题typedefstructNODE{intxintyNODE*link}*Position,Postypedefstruct{Positionto

请教一个结构体栈的问题
typedef   struct   NODE        
{
int   x;
int   y;
NODE   *link;
}*Position,Pos;

typedef   struct        
{
Position   top;
}LinkPosition;
 

void   push(LinkPosition   &plposition,int   x,int   y)        
{
Position   p;
p   =   new   Pos;
p   ->   x   =   x;
p   ->   y   =   y;
p   ->   link   =   plposition   ->   top;
plposition   ->   top   =   p;
}

我这样写结果出错了,提示type   'LinkPosition '   does   not   have   an   overloaded   member   'operator   -> '
请问这该怎么解决呢???

[解决办法]
正如楼上说的,改成
p -> link = plposition.top;
plposition.top = p;
因为你的plposition是LinkPosition 类型的一个引用,而引用在调用成员的时候是用 ". "而不用 "-> ",那是指针才用的 "-> "