Cómo funciona la cancelación
operador delete invoca la función operador delete.
Para los objetos no de tipo de clase (clase, struct, o union), se invoca al operador global de cancelación.Para los objetos de tipo de clase, el nombre de la función de la desasignación se resuelve en un ámbito global si la expresión de eliminación comienza con el operador unario de resolución de ámbito (::).Si no, el operador delete invoca un destructor de un objeto antes de la desasignación de memoria (si el puntero no es null).El operador delete puede definirse en función de la por-clase; si no existe esta definición para una clase determinada, se invoca la cancelación global del operador.Si la expresión de eliminación se utiliza para desasignar un objeto de clase cuyo de tipo estático tiene un destructor virtual, la función de la desasignación se resuelve con destructor virtual de tipo dinámico del objeto.