Constructors, Destructors, and Copy Assignment Operators