15.5.4. Instalar el vpointer

Debido a que el VPTR determina el comportamiento virtual de las funciones en un objeto, es crítico que el VPTR siempre esté apuntando a la VTABLE apropiada. No debería ser posible hacer una llamada a una función virtual antes de que el VPTR esté inicializado correctamente. Por supuesto, el lugar donde se puede garantizar esta inicialización es en el constructor, pero ninguno de los ejemplos Instrument tiene constructor.

Aquí es donde la creación del constructor por defecto es esencial. En los ejemplos Instrument, el compilador crea un constructor por defecto que no hace nada más que inicializar el VPTR. Este constructor se llama, obviamente, de forma automática para todos los objetos Instrument antes de que se pueda hacer nada con ellos, de modo que llamar a funciones virtuales es siempre seguro.

Las implicaciones de la inicialización automática del VPTR dentro de un constructor se discuten en una sección posterior.