[C con Clase] Polimorfismo del ejemplo del capítulo 37
Sebastian Oldani
sebastianoldani en gmail.com
Dom Mar 27 20:43:19 CEST 2016
Hola, que tal, fijate lo siguiente.
On 27/03/16 15:21, marcelinux wrote:
> Hola.
> Por favor, hay algo que no entiendo bien.
> En el capítulo 37: http://c.conclase.net/curso/index.php?cap=037#inicio
> se incluye un ejemplo.
> A dicho ejemplo le he añadido código de forma que queda así:
> int main() {
> Persona *Pepito = new Estudiante("Jose");
> Persona *Carlos = new Empleado("Carlos");
> Estudiante *Pablito = new Estudiante("Pablo"); // añadido
> Empleado *Juanito = new Empleado("Juan"); // añadido
> Persona *Pedrito = new Persona("Pedro"); // añadido
>
> Carlos->VerNombre();
> Pepito->VerNombre();
> Estudiante->VerNombre(); // añadido
Estudiante??
El objeto se llama Pablito!!
Esto deberia ser Pablito->VerNombre();
> Empleado->VerNombre(); // añadido
Lo mismo aca con empleado, estas usando el nombre de la clase.
> Pedrito->VerNombre(); // añadido
> delete Pepito;
> delete Carlos;
> delete Pablito;
> delete Juanito;
> delete Pedrito;
>
> return 0;
> }
Saludos!
>
> Al compilar me devuelve:
> error: expected unqualified-id before ‘->’ token
> Estudiante->VerNombre();
> error: expected unqualified-id before ‘->’ token
> Empleado->VerNombre();
>
> Me gustaría saber por qué las funciones de las clases derivadas quedan ocultas.
>
> Para compilar he usado:
> g++ (Debian 5.3.1-13) 5.3.1 20160323
> Copyright (C) 2015 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions. There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
Más información sobre la lista de distribución Cconclase