DivideAndRule.cpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #include <iostream>
  2. #include <vector>
  3. struct Account
  4. {
  5. int id;
  6. int value;
  7. Account() :
  8. id(-1),
  9. value(0)
  10. {
  11. }
  12. friend std::ostream& operator << (std::ostream& p_os, const Account& p_account)
  13. {
  14. p_os << "[" << p_account.id << "] - [" << p_account.value << "]";
  15. return (p_os);
  16. }
  17. };
  18. struct Bank
  19. {
  20. int liquidity;
  21. std::vector<Account *> clientAccounts;
  22. Bank() :
  23. liquidity(0)
  24. {
  25. }
  26. friend std::ostream& operator << (std::ostream& p_os, const Bank& p_bank)
  27. {
  28. p_os << "Bank informations : " << std::endl;
  29. p_os << "Liquidity : " << p_bank.liquidity << std::endl;
  30. for (auto &clientAccount : p_bank.clientAccounts)
  31. p_os << *clientAccount << std::endl;
  32. return (p_os);
  33. }
  34. };
  35. int main()
  36. {
  37. Account accountA = Account();
  38. accountA.id = 0;
  39. accountA.value = 100;
  40. Account accountB = Account();
  41. accountB.id = 1;
  42. accountB.value = 100;
  43. Bank bank = Bank();
  44. bank.liquidity = 999;
  45. bank.clientAccounts.push_back(&accountA);
  46. bank.clientAccounts.push_back(&accountB);
  47. bank.liquidity -= 200;
  48. accountA.value += 400;
  49. std::cout << "Account : " << std::endl;
  50. std::cout << accountA << std::endl;
  51. std::cout << accountB << std::endl;
  52. std::cout << " ----- " << std::endl;
  53. std::cout << "Bank : " << std::endl;
  54. std::cout << bank << std::endl;
  55. return (0);
  56. }