请教一个结构体栈的问题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 类型的一个引用,而引用在调用成员的时候是用 ". "而不用 "-> ",那是指针才用的 "-> "
