このプロジェクトには、姓、名、整数、および二重で構成される個人情報のリンクリストがあります。C++複数のパラメータを持つノードから情報を取得する方法
void DonorList::addDonor(string firstName, string lastName, int memberID, double donation)
{
Node *pNode = new Node(DonorType(firstName, lastName, memberID, donation), nullptr);
if (first == nullptr)
{
first = pNode;
last = pNode;
}
else
{
last->setLink(pNode);
last = pNode;
}
}
DonorTypeクラスを継承しています。私が困惑しているのは、検索機能で4つのうち1つのパラメータだけを照合する方法です。私は、次のことを試してみた:
bool DonorList::searchID(int memberNumber)
{
Node *current = first;
bool found = false;
while (current != nullptr || !found)
{
if (current->getDonor() == memberNumber)
{
found = true;
}
}
return found;
}
しかし、私は(intです)memberNumberへの電流> getDonor()(タイプDonorTypeのノード)を比較することはできませんので、もちろん、それは動作しません。それは任意のヘルプだ場合、これはヘッダファイルにNodeクラスである:だから、かなり
class Node
{
public:
Node(){}
Node(const DonorType& theDonor, Node *theLink)
: donor(theDonor), link(theLink){}
Node* getLink() const { return link; }
DonorType getDonor() const { return donor; }
void setDonor(const DonorType& theDonor)
{ donor = theDonor; }
void setLink(Node *theLink) { link = theLink; }
private:
DonorType donor;
Node *link; //pointer that points to next node
};
今私は非常に迷ってしまいました私は、検索機能を実行するためには、ノードにmemberNumber情報にアクセスすることができますどのように。どんな助けでも大変感謝します。ありがとう!このプロジェクトには実際にはたくさんのファイルがありますが、問題に関連すると思われるものを含めるように最善を尽くしました。
編集:ここではDonorTypenクラスだ:
class DonorType : public MemberType
{
public:
DonorType();
DonorType(const string& firstName, const string& lastName, const int& memberNumber, const double& donationAmount);
void setDonorInfo(string &firstName, string &lastName, int &memberNumber, double &donationAmount);
void setAmountDonated(double &donationAmount);
double getAmountDonated() const;
void printDonor() const;
void printDonation() const;
~DonorType();
private:
double donation;
};
EDIT2:のmemberTypeクラス
class MemberType
{
public:
MemberType();
MemberType(const string& firstName, const string& lastName, const int& memberNumber);
void setMemberInfo(const string& firstName, const string& lastName, const int& memberNumber);
string getFirstName() const;
string getLastName() const;
int getMembershipNo();
void printName() const;
void printMemberInfo() const;
~MemberType();
private:
string fname;
string lname;
int idnum;
};
を必要としています。 DonorTypeにそのドナー名、IDなどが含まれているのは奇妙に思われますが – pm100
あなたが主張するように、示されたコードには「DonorTypeクラスから継承します」というものは何もありません。 C++の基本的な概念をよく理解していないように見えます。これは、stackoverflow.comの簡単な答えのスペースで適切に処理できるものではありません。答えることができる明確な質問を伝えることができるようにするために、適切な用語と一般的な用語を使ってコミュニケーションをとることができます。 –
、なぜstd :: listを使用していないのですか – pm100