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
- Crea una clase base llamada
Shapeque tenga un método virtual llamadocalculateArea()y un destructor virtual. - Desarrolla dos clases derivadas:
CircleySquare. Cada una debe sobrescribir el métodocalculateArea(). - En la clase
Circle, utiliza un atributoradius, y enSquare, utiliza un atributosidepara sus cálculos respectivos. - En la función
main(), crea un vector de punteros de tipoShapey rellénalo con instancias deCircleySquare. Itera sobre el vector para mostrar las áreas calculadas por los objetos. - 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
- Propuestas de actividades avanzadas con XML, DTD, XPath y XSLT
- Apuntes extensos de XML y XSLT
- El momento IDEAL para impulsar tu FORMACIÓN y alcanzar tus Metas Académicas: LAS NAVIDADES.

- 20 ejercicios de funciones avanzadas en Python (al estilo de Ackermann)
- Cómo guardar una página web completa en MySQL con PHP (urlencode, BLOB y otras técnicas)
- 60 ejercicios de funciones recursivas en Python para la carrera de Informática
- SIMULACRO 2 – FP Programación de Videojuegos
- Simulacro de examen – FP Programación de Videojuegos
- ALERTA METEOROLÓGICA

ELIGE TU RED FAVORITA Y SÍGUENOS.
AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.
Contenido restringido





































































































































































































































































INFORMACIÓN SOBRE 







Comments are closed