高分悬赏:请高手看一下啊!分析一段C++程序~~谢谢~~

来源:百度知道 编辑:UC知道 时间:2024/05/12 03:49:25
#include<iostream>
#include<string>
#include<iomanip>
#include<fstream>
using namespace std;
class CData
{
public:
CData(){};
virtual int comparename(CData &) =0;
virtual void show()=0;
virtual ~CData(){};
};
class CNode
{
public:
CNode(){pdata=0;pnext=0;}
CNode(CNode &n);
void inputdata(CData *pd){pdata=pd;}
void shownode(){pdata->show();}
CData *getdata(){return pdata;}
friend class CList;
private:
CData *pdata;
CNode *pnext;
};
CNode::CNode(CNode &n)
{
pdata=n.pdata;
pnext=n.pnext;
}

class CList
{
public:
CList(){phead=0;}
~CList(){deletelist();}
void addnode(CNode *pnode);
void deletelist();
CNode *deletenode(CNode *pnode);
CNode *lookup(CData &data);
CNode *getlisthead(){return phead;}
void showlist();

//明显的一个单向琏表定义
#include<iostream>
#include<string>
#include<iomanip>
#include<fstream>
using namespace std;
class CData //定义一个数据类,在CNode节点中会用到
{
public:
CData(){};
virtual int comparename(CData &) =0;//没给出定义,不好说
virtual void show()=0;//没给出定义,返回为void居然=0,不知该杂理解
virtual ~CData(){};//虚函数的析构函数定义
};

class CNode //定义节点
{
public:
CNode(){pdata=0;pnext=0;} //无参构造函数定义
CNode(CNode &n); //带参构造函数声明
void inputdata(CData *pd){pdata=pd;} //输入数据函数定义
void shownode(){pdata->show();}//做CDate中的show()函数操作
CData *getdata(){return pdata;}//便于非友元访问数据指针
friend class CList;//琏表声明为友类,以便直接访问私有数据
private:
CData *pdata; //数据指针
CNode *pnext; //指向下一节点
};
CNode::CNode(CNode &n)//带参构造函数定义
{
pdata=n.pdata;
pnext=n.pnext;
}

class CList//琏表类定义
{
public:
CList(){phead=0;} //无参