CISC 181
Review for Exam #3
Disclaimer - while this list SHOULD cover everything, it MAY not. Don't argue after the final if there happens to be something on the final that wasn't mentioned in this list.

** EXTRA HELPFUL WARNING - This is a LOT of material. Exam 1 was a lot of review, so you maybe didn't have to study too much, and Exam 2, while hard material, there wasn't much of it. This is both a LOT of material and fairly challenging, and this test is worth 20% of your grade vs. 15% for the others tests. Finish strong!
Topics
------

What a Class is
Declarations (.h) and Implementations (.cc)
How we split these up, how to #include a custom class, how to compile them
Preventing multiple inclusion
Access Modifers (public / protected / private)
Static members in classes
Classes as atomic Objects
Encapsulated Functionality / Information Hiding
Controlling Access to Data members thru get/set calls (data = private)
Constructors 
Default arguments in constructors/functions
Destructors
Class assignment, = operator, Copy constructor, what C++ does if you don't write on yourself
Rule of 3
Creating objects on the heap
Principal of least privilege
Class composition (classes inside other classes)
the this pointer - cascading function calls
Friend functions - how/why/what they are
Operator Overloading - how/why/what they really are/what not to do
overloading <<, pre/post increment
Inheritance - Single vs. Multiple - which does C++ support
Relationships between objects (is-a, has-a)
Accessing base class members - protected access vs. protected member functions
Derived Classes - overriding functions
Order which constructors/destructors run
Implicit vs. Explicit Construction
Class Pointers