#include <iostream>usingnamespace std;class Figura {public:// Es importante que la clase base sea polimorfica agregándole al menos una función virtual:virtual ~Figura(){};};class Triangulo :public Figura {};class Cuadrado :public Figura {};
main(){
Figura *figura1 =new Cuadrado;
Figura *figura2 =new Triangulo;if(dynamic_cast<Cuadrado *>( figura1 ))cout<<"La figura1 es un Cuadrado"<<endl;elseif(dynamic_cast<Triangulo *>( figura1 ))cout<<"La figura1 es un Triangulo"<<endl;if(dynamic_cast<Cuadrado *>( figura2 ))cout<<"La figura2 es un Cuadrado"<<endl;elseif(dynamic_cast<Triangulo *>( figura2 ))cout<<"La figura2 es un Triangulo"<<endl;return0;}
result:
Success
time: 0.01s
memory: 0 kB
returned value: 0
 
Would you like to manage your submissions? Sign up now and enjoy the full functionality of Ideone.
La figura1 es un Cuadrado
La figura2 es un Triangulo