The Output class is derived from the Port class and is used to simulate an output port of a component. The output ports of a component are all stored in the O_List public member of the Component class and can therefore be accessed by outside objects as is the case in the real world. The purpose of an Output object is to act as a gateway through which signals generated by components may be transmitted to wires connected to the output port. Because signals may be both written to and read from an output port, the Output class supports both the get_signal() and send_signal() virtual methods as defined by its parent Port class. As a result of this inheritance, the implementation of the Output class is very trivial.