COMPARTE ESTE ARTÍCULO

Objetivo: Desarrollar una comprensión práctica de cómo las clases base y derivadas interactúan en C++, utilizando punteros y métodos virtuales para lograr el polimorfismo.

Descripción del Ejercicio

  1. Crea una clase base llamada Shape que tenga un método virtual llamado calculateArea() y un destructor virtual.
  2. Desarrolla dos clases derivadas: Circle y Square. Cada una debe sobrescribir el método calculateArea().
  3. En la clase Circle, utiliza un atributo radius, y en Square, utiliza un atributo side para sus cálculos respectivos.
  4. En la función main(), crea un vector de punteros de tipo Shape y rellénalo con instancias de Circle y Square. Itera sobre el vector para mostrar las áreas calculadas por los objetos.
  5. Asegúrate de liberar cualquier memoria asignada antes de que finalice el programa.

Código Base para el Ejercicio

#include <iostream>
#include <vector>

class Shape {
public:
    virtual double calculateArea() = 0; // Método virtual puro
    virtual ~Shape() {} // Destructor virtual para limpieza adecuada
};

class Circle : public Shape {
private:
    double radius;
public:
    Circle(double r) : radius(r) {}
    double calculateArea() override {
        return 3.14159 * radius * radius;
    }
};

class Square : public Shape {
private:
    double side;
public:
    Square(double s) : side(s) {}
    double calculateArea() override {
        return side * side;
    }
};

int main() {
    std::vector<Shape*> shapes;
    shapes.push_back(new Circle(5));
    shapes.push_back(new Square(4));

    for (auto& shape : shapes) {
        std::cout << "The area is: " << shape->calculateArea() << std::endl;
    }

    // Clean up
    for (auto& shape : shapes) {
        delete shape;
    }
    shapes.clear();

    return 0;
}


¿QUÉ TE HA PARECIDO EL ARTÍCULO? Danos tu opinión al final de la página.
Deja tu comentario y ayúdanos a crecer.


¡SÍGUENOS EN TUS REDES FAVORITAS!
AYUDANOS A CRECER Y QUE LLEGUEMOS A TODAS LAS PERSONAS QUE NOS NECESITANA. SÍGUENOS EN TUS REDES.
Entra AQUÍ y elíge donde seguirnos. 

 

 


NUESTRAS ÚLTIMAS PUBLICACIONES

INSTAGRAM

TIKTOK


 …Y PRONTO MUCHAS MÁS

AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.

Contenido restringido

Acceso de usuarios existentes
   
Registro de un nuevo usuario
*Campo necesario

Categories:

Tags:

Comments are closed

Estado de acceso
ESTADO DE ACCESO
TRADUCTORES
COMPARTENOS
error: CONTENIDO PROTEGIDO