分析一段C++程序?谢谢诶~~

来源:百度知道 编辑:UC知道 时间:2024/09/22 09:57:37
前部分略过

return pnode;
}
CNode *CList::lookup(CData &data)
{
CNode *p1=phead;
while(p1)
{
if(p1->pdata->comparename(data)==0)
return p1;
p1=p1->pnext;
}
return 0;
}
void CList::showlist()
{
if(phead==0)
cout<<"对不起,没有任何记录.\n";
else
{
CNode *p=phead;
while(p)
{
p->pdata->show();
p=p->pnext;
}
}
}
CNode *CList::getnext(CNode *pnode)
{
CNode *p=pnode;
p=p->pnext;
return p;
}
class Student:public CData
{
private:
char s_class[17];
char s_num[17];
char s_name[17];
double ele_technique;
double c_program;
double mul_technique;
double col_english;
double sen_math;
double col_gym;
double marx_economy;
double average;
public:
Stude

这个例子实际上就是用了一些C++的特点,实现几个类和一些功能而已。
实现的几个类有:
CData ,CNode ,CList ,Student
CData 是个抽象类,它可以派生出后面的Student,也可以派生成其它的类型,作为一个通用性作用的数据类吧。
CNode 定义了指向CData的指针和指向其它数据的指针,它定义了一种结构 供后面的CList 使用。
CList 就是对很多个 CNode对象进行操作的类,它只要记录一个链头 就能找到链中所有Node.
最后的Student类,就是将Data派生为具体的类。

可以把以上例子看作是一列列车,CList 就是指整个列车,CNode 列车的一节,CData 车箱中所装的东西,CData装的什么东西 由最后派生出来的类决定。

用到的C++特性主要有:
继承 CData的继承
虚函数、抽象类 CData 中使用,使CData有通用性
友元 CNode中指定,使CList可以访问CNode的成员
虚析构 CData中定义,CList和CNode清除结点时,可以准确的清除对应类的数据。

不知道你说的是哪一方面。

你的问题都没描述清楚别人怎么回?