List::List(TNewDate date_start,TNewDate date_end)
{
LinkNode *newNode,*last;TNewDate val;
makeEmpty();
if(date_start.cal_week()==6||date_start.cal_week()==7) {date_start++;}
if(date_start.cal_week()==6||date_start.cal_week()==7) {date_start++;}
val=date_start;
last=first;
while(val<date_end){
newNode=new LinkNode(val);
if(newNode==NULL) {cerr << "存储分配错误!" << endl;exit(1);}
last->link=newNode;last=newNode;
date_start++;
if(date_start.cal_week()==6||date_start.cal_week()==7) {date_start++;}
if(date_start.cal_week()==6||date_start.cal_week()==7) {date_start++;}
}
}
void List::makeEmpty()
{
LinkNode *q;
while(first->link!=NULL){
q=first->link;
first->link=q->link;
delete q;
}
}
这是单链表类里的构造函数和置空函数,编译器报错是在置空函数里的first->link=q->link,错误原因我查了一下,大概是指针没有初始化的意思,可是我不知道这里哪个指针有问题,这是书上一个现成的函数,实在不太明白错在哪里。