J'ai reçu cette tâche et j'ai eu pas mal de problèmes avec le remplacement de l'information par de nouvelles données. Lorsqu'un nouveau client est créé, il doit créer un nouveau compte de base. Cela fonctionne bien mais j'essaye de permettre aux clients avec plusieurs types de comptes chacun avec leurs propres règles telles qu'étudiant/actuel qui chacun contient leurs propres valeurs.Pointeurs remplaçant des pointeurs plus anciens
Pour une raison quelconque, ma valeur monétaire d'un compte devient la valeur actuellement définie et, pour une raison quelconque, chaque compte, même pour différents clients, partage la valeur à l'intérieur. Donc, si compte1 a 200 £ alors le compte2 est alors créé avec 300 £. Le compte1 sera alors fixé à 300 £.
Customer.h
Customer(std::string sFirstName, std::string sLastName,
std::string sAddressLnA,
std::string sAddressLnB,
std::string sCity,
std::string sCounty,
std::string sPostcode,
AccountManager* bankAccount);
AccountManager* getAccount(void);
//outside class
std::ostream& operator << (std::ostream& output, Customer& customer);
Customer.cpp
//Part of a method but i've shrunk it down
AccountManager account(H);
AccountManager accRef = account; //This the issue?
Customer c(A, B, C, D, E, F, G, &accRef);
customerList.insert(c);
showPersonDetails();
//Output
ostream& operator << (ostream& output, Customer& customer)
{
output << customer.getFirstName() << " " << customer.getLastName() << endl
<< customer.getaddressLnA() << endl
<< customer.getaddressLnB() << endl
<< customer.getcity() << endl
<< customer.getcounty() << endl
<< customer.getpostcode() << endl
<< (*customer.getAccount()) << endl;
return output;
AccountManager.h
class AccountManager
{
private:
double money;
public:
AccountManager(double amount);
~AccountManager(void);
double getMoney();
};
//Print
std::ostream& operator << (std::ostream& output, AccountManager& accountManager);
AccountManager.cpp
using namespace std;
AccountManager::AccountManager(double amount)
{
money = amount;
}
AccountManager::~AccountManager()
{
}
double AccountManager::getMoney()
{
return money;
}
ostream& operator << (ostream& output, AccountManager& accountManager)
{
//Type of account
output << "Account Money: " << accountManager.getMoney() << endl;
return output;
}
Notez que 'AccountManager accRef = compte,' ne crée pas une référence, vous copiez le 'account' objet. – enobayram
Essayez également de fournir un exemple minimal illustrant votre problème. Le code fourni n'a rien à voir avec le problème mentionné. Vous obtiendrez une réponse assez rapidement si vous fournissez du code qui se compile et s'exécute simplement. – enobayram