求助:我该怎样理解箭头操作符?红色处
#include "node.h"//需要使用链表结点类#include <iostream>
using namespace std;
class Linklist
{
public:
Linklist(int i,char c);//链表类构造函数
bool Locate(int i);//根据整数查找结点
bool Locate(char c);//根据字符查找结点
bool Insert(int i=0,char c='0');//在当前结点之后插入结点
bool Delete();//删除当前结点
void Show();//显示链表所有数据
void Destroy();//清除整个链表
private:
Node head;//头结点
Node * pcurrent;//当前结点指针
};
Linklist::Linklist(int i,char c):head(i,c)//类名::构造函数名(参数表):成员对象名1(参数表),链表
//类构造函数,调用head对象的构造函数重载1,详见Node.h文件
{
cout<<"Linklist constructor is running..."<<endl;//提示构造函数运行
pcurrent=&head;//使当前结点指向头结点,并调用head对象的构造函数重载1
}
bool Linklist::Delete()//删除当前结点
{
if(pcurrent!=NULL && pcurrent!=&head)//head 结点不能删除
{
Node * temp=pcurrent;//temp指针指向当前结点(定位到当前结点)
if (temp->readn()!=NULL)//如果temp指针没有指向尾部
{
//红色部分应该怎样理解?谢谢指导
temp->readn()->setp(pcurrent->readp());
}
temp->readp()->setn(pcurrent->readn());//先连
pcurrent=temp->readp();
delete temp;//后断
return true;
}
else
{
return false;
}
}
====================(附另一头文件说明)
class Node//定义一个链表结点类
{
public:
Node();//构造函数0
Node(int i,char c='0');//构造函数重载1,参数c 默认为'0'
Node(int i,char c,Node *p,Node *n);//构造函数重载2
int readi() const;//读取idata
char readc() const;//读取cdata
Node * readp() const;//读取上一个结点的位置
Node * readn() const;//读取下一个结点的位置
bool set(int i);//重载,通过该函数修改idata
bool set(char c);//重载,通过该函数修改cdata
bool setp(Node *p);//通过该函数设置前驱结点
bool setn(Node *n);//通过该函数设置后继结点
private:
int idata;//存储数据保密
char cdata;//存储数据保密
Node *prior;//前驱结点的存储位置保密
Node *next;//后继结点的存储位置保密
};
[ 本帖最后由 恭喜我发财 于 2009-8-20 13:45 编辑 ]