#include <iostream>

using namespace std;

// class declaration

class account {
private:
  string name;
  int number;
  float money;
public:
  account(string new_name, int new_num);
  void deposit(float amount);
  bool withdraw(float amount);
  void print();
};

// function definitions

account::account(string new_name, int new_num) {
  name = new_name;
  number = new_num;
  money = 0;
}

void account::deposit(float amount) {
  money += amount;
}

bool account::withdraw(float amount) {
  if (money < amount)
    return false;
  money -= amount;
  return true;
}

void account::print() {
  cout << "Name: " << name << "\n";
  cout << "Account number: " << number << "\n";
  cout << "Money: " << money << "\n";
}

bool transfer(account &from, account &to, float amount) {
  if (!from.withdraw(amount))
    return false;
  to.deposit(amount);
  return true;
}

int main() {
  account pedro((string)"Pedro Felzenszwalb", 1121);
  account rob((string)"Robert Kirby", 3244);

  rob.deposit(800.0);
  pedro.deposit(20.0);
  transfer(rob, pedro, 45.0);
  pedro.print();
  
  return 0;
}
