Lecture 34

files in ./

ofstream.cpp demonstrates proper usage of ofstream and ifstream
constructors using primitive C strings, rather than C++ string objects

files in ./ptr_shallow_impl

The following files implement a naive approach to representing the class objects
from the previous lecture as pointers to objects instead of objects. This code keeps the default
implementations for copy constructor and operator= to demonstrate the problems
that may arise, even if we remember to create new objects in the constructor and
delete them in the destructor.

files in ./ptr_impl

The following files implement the correct approach to representing the class objects
from above as pointers to objects instead of objects. This code modifies the default
implementations for copy constructor to force the call to the member objects copy
contructors and operator= function to force the calls to the member objects operator=
functions.