Updated .gitignore to ignore builds
Minor fixes to classes

Mainly, wrong names of local variables; these are copypasta errors.
Created pasing and returning functions

Functions to pass and return each of the classes by value, reference,
and pointer. Each of the pass functions assigns the parameter to a local
object created on the stack. Each of the return functions returns a
local object created on the stack.

GCC users must compile with the -fpermissive flag, or the code won't
compile (for the above reasons).
Overloaded stream extraction operator

Overloaded the stream extraction operator for both the base and derived
classes, and used overloaded operators to print to cout in the various
methods.
Changed pass functions to use stream operator

Makes the code more compact.