Funciones Virtuales
Publicado por Oliver++ (339 intervenciones) el 14/11/2002 15:25:30
escribo el sig. codigo y el compilador no genera error y todo funciona como si definiera las funciones virtuales.
class Cbase
{ public:
int funcion()
{
return 1;
}
};
class Cderivada : public Cbase
{ public:
int funcion()
{
return 2;
}
};
He leido que las funciones virtuales se definen para decirle al compilador que habra una nueva version de la misma en una o todas las clases derivadas pero yo la redefino sin declararla virtual y no me presenta problemas. Al instanciar los objetos todo funciona perfecto.
Cbase clasebase;
clasebase.funcion() // me devuelve 1
Cderivada clasederivada;
clasederivada.funcion() // me devuelve2
Yo he llegado a la conclucion de que el compilador asume que son virtuales. Me podrias abundar sobre el tema
class Cbase
{ public:
int funcion()
{
return 1;
}
};
class Cderivada : public Cbase
{ public:
int funcion()
{
return 2;
}
};
He leido que las funciones virtuales se definen para decirle al compilador que habra una nueva version de la misma en una o todas las clases derivadas pero yo la redefino sin declararla virtual y no me presenta problemas. Al instanciar los objetos todo funciona perfecto.
Cbase clasebase;
clasebase.funcion() // me devuelve 1
Cderivada clasederivada;
clasederivada.funcion() // me devuelve2
Yo he llegado a la conclucion de que el compilador asume que son virtuales. Me podrias abundar sobre el tema
Valora esta pregunta


0