Nos quedamos en la última entrega con una estructura que Animal hacía de tipo "base" del tipo Cat . El problema venía cuando queríamos crear un patrón factory method , ya que no podemos apuntar con un puntero a Animal a una estructura Cat .
func New () * Animal { return & Cat {} // Error! }
Enter fullscreen mode
Exit fullscreen mode
Lo cierto es que estamos acostumbrados a C++, de manera que una clase derivada no es más que los atributos de la clase base, y, a continuación, los atributos de la clase derivada. Incluso Glib, pese a utilizar C y no C++, utiliza este "truco" en el que la clase base está primero en la memoria con la clase derivada.…