Implementando el Polimorfismo Dinámico en C++

C++C++Beginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, implementaremos el concepto de polimorfismo en C++. El polimorfismo es un concepto del Programación Orientada a Objetos donde una sola función puede ser utilizada de diferentes maneras. Hay dos tipos de polimorfismo: polimorfismo de tiempo de compilación o polimorfismo estático y polimorfismo de tiempo de ejecución o polimorfismo dinámico. En este laboratorio, nos centraremos en el polimorfismo de tiempo de ejecución o dinámico.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/OOPGroup(["OOP"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp/OOPGroup -.-> cpp/classes_objects("Classes/Objects") cpp/OOPGroup -.-> cpp/class_methods("Class Methods") cpp/OOPGroup -.-> cpp/inheritance("Inheritance") cpp/OOPGroup -.-> cpp/polymorphism("Polymorphism") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/classes_objects -.-> lab-96154{{"Implementando el Polimorfismo Dinámico en C++"}} cpp/class_methods -.-> lab-96154{{"Implementando el Polimorfismo Dinámico en C++"}} cpp/inheritance -.-> lab-96154{{"Implementando el Polimorfismo Dinámico en C++"}} cpp/polymorphism -.-> lab-96154{{"Implementando el Polimorfismo Dinámico en C++"}} cpp/output -.-> lab-96154{{"Implementando el Polimorfismo Dinámico en C++"}} cpp/files -.-> lab-96154{{"Implementando el Polimorfismo Dinámico en C++"}} cpp/code_formatting -.-> lab-96154{{"Implementando el Polimorfismo Dinámico en C++"}} end

Crea un nuevo archivo main.cpp

Primero, crearemos un nuevo archivo C++ llamado main.cpp en el directorio ~/project:

$ cd ~/project
$ touch main.cpp

Agrega código para implementar el polimorfismo

En este paso, crearemos una clase llamada Shape. La clase Shape tendrá una función virtual llamada area(). Luego crearemos dos clases Rectangle y Triangle que heredarán de la clase Shape y sobrescribirán la función virtual area(). Una vez creadas las clases, crearemos una matriz de objetos de la clase Shape y luego recorreremos la matriz para llamar a la función area() de cada objeto.

#include <iostream>
using namespace std;

class Shape {
    public:
        virtual float area() {
            return 0;
        }
};

class Rectangle: public Shape {
    public:
        float area() {
            cout << "Rectangle class area()" << endl;
            return 0;
        }
};

class Triangle: public Shape {
    public:
        float area() {
            cout << "Triangle class area()" << endl;
            return 0;
        }
};

int main() {
    Shape *shape;
    Rectangle rec;
    Triangle tri;

    shape = &rec;
    shape->area();

    shape = &tri;
    shape->area();

    return 0;
}

Compila y ejecuta el código

En este paso, compilaremos y ejecutaremos el código usando los siguientes comandos:

$ g++ main.cpp -o main
$./main

La salida del programa anterior será:

Rectangle class area()
Triangle class area()

Resumen

En este laboratorio, aprendimos cómo implementar el concepto de Polimorfismo en C++. Creamos una clase con una función virtual llamada Shape. Luego creamos dos clases Rectangle y Triangle que heredaron de la clase Shape y sobrescribieron la función virtual area(). Finalmente, creamos objetos de las clases Rectangle y Triangle y llamamos a la función area() usando el objeto de la clase base Shape, lo que resultó en la llamada a las respectivas clases.