私は基本的に、リーグ、サッカー チーム、備品を追加できるデータベース構造を構築しています。リンク リスト テンプレートを作成し、各チームのフィクスチャのリンク リストと、各リーグのチームのリンク リストを作成しました。dataBase
クラス内のリーグのリンクリストもあります。データベースにリーグを追加する機能を追加できましたが、チームを追加できません。add 関数を実行したところ、正しい値が割り当てられましたが、関数から戻るteam_list
と、指定されたリーグのリンク リストが空です。
addTeam
これがデータベース内の私の関数です。
void Database::addTeam(Team team)
{
Node<League>* ptr = league_list.getHead();
while(ptr!=0)
{
// if the team's league matches current in the list add to this league
if(ptr->getData().getLeagueName()==team.getLeagueName())
{
ptr->getData().getTeamList().add(team);
return;
}
else // doesn't match so go to next league in list
{
ptr=ptr->getNextNode();
}
}
if(ptr==NULL) // if not found prompt user
{
throw exception(ERRORMSG);
}
}
リンクされたリスト内の追加機能は次のとおりです。デバッガーをステップ実行すると、意図した値が変更および変更されているように見えます。addTeam
ただし、この関数からデータベースの関数に戻ると、何も変更されていません。
template<class data>
void LinkedList<data>::add(data a)
{
Node<data> *nodePtr;
nodePtr=new Node<data>(a);
nodePtr->setNextPointer(0);
if(head==0) // if head is empty
{
head=nodePtr; // make the new node the first node
head->setPreviousPointer(0); // make the new node point to null
}
else
{
if(nodePtr==0) // if head is null
{
last=0; // if list unoccupied _last is null
}
while(nodePtr->getNextNode()!=0)
{
last=nodePtr->getNextNode();
}
nodePtr->setPreviousPointer(last);
// set the old last node to point to the new node
last->setNextPointer(nodePtr);
}
last=nodePtr; // point to the new end of list
current=nodePtr; // set the current node to the last in list
}
なぜこれが起こるのかについての助けに本当に感謝しています。