Visitor that helps to perform action that depends on polymorphic object type
Use cases:
- data serialization,
- pretty printing of \a CCObject *
- safe value reading from \a CCArray, \a CCDictionary, \a CCSet
Usage:
- subclass CCDataVisitor
- overload visit() methods for object that you need to handle
- handle other objects in \a visitObject()
- pass your visitor to \a CCObject::acceptVisitor()