Assigns the specified object to this SmartPointer object.
The reference count of the specified object is not incremented.
If this SmartPointer is currently referencing another object, that object is released prior to the assignment.