En este programa vamos a aprender cómo implementar polimorfismo con la herencia usando funciones virtuales en lenguaje de programación C ++?
Si hay mismas funciones miembro de la base y clases derivadas, los objetos de clases derivadas se llaman función miembro de Base class.
Veamos el ejemplo (sin el uso de funciones virtuales)
Consideremos el siguiente ejemplo:
#include <iostream>
using namespace std;
class Base{
public:
void disp(){
cout<<"disp function of Base class"<<endl;
}
};
class Derived1: public Base{
public:
void disp(){
cout<<"disp function of Derived1 class"<<endl;
}
};
class Derived2: public Base{
public:
void disp(){
cout<<"disp function of Derived2 class"<<endl;
}
};
int main(){
Base *b;
Derived1 D1;
Derived2 D2;
b= &D1;
b->disp();
b= &D2;
b->disp();
return 0;
}
salida
disp function of Base class
disp function of Base class
programa en C ++ (Fragmento de código) – Implementación de polimorfismo usando funciones virtuales
cómo acceder a las funciones deriva class ‘s (con función virtual)?
Hay tres cosas, que tiene que hacer aplicar un polimorfismo usando las funciones miembro virtuales, y los pasos son :
- Uso virtuales palabra clave con la función de miembro de base class ‘s
- Crear un puntero de Base class, la dirección asignada del Derivado class ‘función miembro s
- funciones miembro de llamadas con el class Base’ s puntero
Consideremos el siguiente ejemplo:
#include <iostream>
using namespace std;
class Base{
public:
virtual void disp(){
cout<<"disp function of Base class"<<endl;
}
};
class Derived1: public Base{
public:
void disp(){
cout<<"disp function of Derived1 class"<<endl;
}
};
class Derived2: public Base{
public:
void disp(){
cout<<"disp function of Derived2 class"<<endl;
}
};
int main(){
Base *b;
Derived1 D1;
Derived2 D2;
b= &D1;
b->disp();
b= &D2;
b->disp();
return 0;
}
salida
disp function of Derived1 class
disp function of Derived2 class