The result is catenated from P_SMELL and the extra data associated with P_SMELL. Actual objects may redefine Smell() as they please to.
write(obj->Smell());