Well it depends on the implementation. At a minimum, since the object contains pointers it manages, you'll need a proper copy constructor and assignment operator that do deep copies of the pointer. Your destructor (or perhaps your Clear() method) needs to deallocate the memory allocated by the object (I assume in all of your non-default constructors and your operator() methods).
The operator() method of giving a new value to the object is very strange, imo. Better would be to use assignment operators for that.