求解一段C++代码,没看明白!

来源:百度知道 编辑:UC知道 时间:2024/09/28 10:05:20
增加图书的代码,没看出来是怎么把新书的名字添加进去的..感觉2个函数中没有用到CHAR *NA.
//增加图书
int addbook(int n,char *na)
{
Book *p=query(n);
if (NULL==p)
{
top++;
book[top].addbook(n,na);
return 1;
}
return 0;
}
//查找图书
Book *query(int bookid)
{
for (int i=0;i<=top;i++)
if (book[i].getno()==bookid &&book[i].gettag()==0)
{
return &book[i];
}
return NULL;
}
book[top].addbook(n,na); 这个又调用ADDBOOK函数,形成了递归..怎么添加新书名字的?

/*
补充,你看错了,两者不是一个函数,其中一个是Book的成员函数,另一个不是,两者是可以重名的。
*/
int addbook(int n,char *na)
{
Book *p=query(n);//调用query()查找指向编号为n的书,使指针p指向它。
if (NULL==p) //如果该代码不存在(表示为新书)
{
top++;
book[top].addbook(n,na); //将该书加入栈顶,这里用到了na,应该是书的名字。
return 1;
}
return 0;
}