这是类的定义:
struct student//定义学生结构
{
int Num;
long ID;
char Name[10];
char Place[100];
char Date[20];
float Score;
};
class List;//List类的前视声明
class ListNode//定义链表结点类
{
friend class List;
private:
student data;//学生类型的数据
ListNode *link;
public:
ListNode();//不给数据的构造函数
ListNode(const student &item);//给数据的构造函数
ListNode *NextNode() { return link; }//给出当前结点的下一个结点的地址
ListNode *InsertAfter(ListNode *p);//当前结点插入
ListNode *GetNode(const student &item,ListNode *next);//建立一个新结点(返回的是新结点的地址值)
};
class List
{
private:
ListNode *first,*last;
public:
List(const student &value)//构造函数
{ last=new ListNode(value); first=new ListNode(); first->link=last; }
~List();//析构函数
void MakeEmpty(); //将链表置空
void Getdata();//输入数据
int Length() const;//求链表长度
//ListNode *FindValue(student value);//在链表中搜索含数据value的结点
ListNode *FindI(int i);//搜索链表中第i个元素的地址
int Insert(student value,int i,int flag);//在第i个结点位置处插入value
student *Remove(int i);//删除第i个结点
void Output();//显示数据
void Find();//查找
//void Renew(int i);//更新数据
void Total();//统计
//int OutFile();//写文件
//int InFile();//读文件
friend ostream &operator<<(ostream &out,student &inList);//重载运算符<<
friend istream &operator>>(istream &in,student &inList);//重载运算符>>
};
说说怎么debug吧,程序不是所有错都需要检查出来的。你的开发环境会帮你找出很多错误。这里举个简单的例子,把下面的程序在VC下编译并运行(用debug模式运行,即F5)。
#include "stdafx.h"
#include <string>
#include <crtdbg.h>
using namespace std;
int crash(string *p);
int main(int argc, char* argv[])
{
string *pstr = NULL;
crash(pstr);
return 0;
}
int crash(string *p)
{
_ASSERT(p != NULL);
return p->size();
}
执行的时候会出现
[此贴子已经被作者于2006-5-11 3:20:56编辑过]