/* This tells the compiler "if you see this file more than once 
 * while compiling, ignore it after the first time" 
 * (so it doesn't think you're trying to define things more than once).
 */
#pragma once

/* This class defines a BankAccount type that tracks an account balance.
 * It lets you set an initial amount when creating it, deposit and withdraw
 * money, and get the current balance.
 */
class BankAccount {
public:
    // client-accessible functionality/data goes here

    // constructors
    // Initializes an account with a balance of 0
    BankAccount();

    // Initializes an account with the specified balance
    BankAccount(double initialAmount);
    
    // public methods
    // Deposits the specified amount - if amount is <= 0, does nothing.
    void deposit(double amount);

    // Withdraws the specified amount - if amount is > balance, does nothing.
    void withdraw(double amount);

    // Returns the current account balance.
    double getBalance();

private:
    // private internal-only functionality/data goes here

    // instance variable
    double balance;
};
