私は、銀行から口座を挿入、削除するプログラムに取り組んでいます。ここで リンクリストの挿入機能が機能しないのはなぜですか? (C++)
は私.HPPコードです:#ifndef DEF_BANK
#define DEF_BANK
#include <iostream>
using namespace std;
class Bank
{
private:
class _Account
{
public:
_Account(string, float);
string getClient();
float getBalance();
_Account *getNext();
void setClient(string);
void setBalance(float);
void setNext(Bank::_Account *);
private:
string _client; //nom client
float _balance; // stocke balance du compte
_Account *_next; // next account
};
_Account *_head;
public:
Bank();
Bank(string name, float balance);
_Account *rechercheClient(string);
float withdraw(string, float);
float deposit(string, float);
void createAccount(string, float);
void insert(string, float);
void remove(string name);
float deleteAccount(string);
void mergeAccounts(string, string);
void displayAccounts();
};
#endif
そして、ここに私の.cpp挿入機能である:
void Bank::insert(string name, float balance)
{
_Account *temp(_head);
//_Account *n = new _Account(name, balance);
bool flag(true);
while(temp)
{
if (temp->getClient() == name)
{
/* code */
cout << "DENIED OPERATION! --> "<< name <<"’s account already exists." << endl;
flag = false;
}
temp = temp->getNext();
}
if (flag)
{
/* code */
temp->setNext(new _Account(name, balance));
}
}
なぜ私はmain.cppにでこれをしようとすると:
int main()
{
Bank account_1;
account_1.insert("Hamza", 1000.0);
}
セグメント違反が発生しました:11?コードに自分の誤りが見られないからです。
デバッガを使用する場合、 'Account * _head'の値は何ですか? – Soren
質問:介入するリンクリストの実装の半分が銀行口座クラスに属しているのはなぜですか? –
教師はそれをそうするように教えてくれました:) – IdelHamza