In reply to TC_2017:
Assigning null to a class variable does not delete the class object that was previously reference by the handle stored in the variable—it only deletes the reference to the object. Only when all references are removed can the object be considered “deleted”. The UVM provides no way to delete all reference to a uvm_component object, thus you cannot delete a uvm_compnent once it has been created.
When you construct a uvm_component, you pass the “this” handle as a second(parent) argument to the constructor method. The constructor appends a handle to the user_component to a list of children components in the parent component. The UVM uses the list of children to travers a top-down or depth-first traversal of the component hierarchy to execute the build_phase.