Voy a proporcionar dos ejercicios para practicar en C++ que cubren los conceptos de punteros, clases, métodos virtuales y override
. También incluiré soluciones para cada uno de ellos.
Ejercicio 1: Jerarquía de Clases con Método Virtual y Punteros
Objetivo: Crear una jerarquía de clases con un método virtual y demostrar el polimorfismo utilizando punteros.
Descripción del Ejercicio
- Define una clase base llamada
Vehicle
que tenga un método virtual llamadodisplayInfo()
. - Crea dos clases derivadas:
Car
yBike
. - En cada clase derivada,
override
el métododisplayInfo()
para que muestre información específica del vehículo. - En la función
main()
, crea un objeto de tipoCar
y otro de tipoBike
utilizando punteros de tipoVehicle
. Utiliza estos punteros para llamar al métododisplayInfo()
.
Código Base para el Ejercicio
#include <iostream>
class Vehicle {
public:
virtual void displayInfo() = 0; // Método virtual puro
virtual ~Vehicle() {} // Destructor virtual
};
class Car : public Vehicle {
public:
void displayInfo() override {
std::cout << "This is a Car." << std::endl;
}
};
class Bike : public Vehicle {
public:
void displayInfo() override {
std::cout << "This is a Bike." << std::endl;
}
};
int main() {
Vehicle* v1 = new Car();
Vehicle* v2 = new Bike();
v1->displayInfo();
v2->displayInfo();
delete v1;
delete v2;
return 0;
}
Ejercicio 2: Manipulación de Objetos mediante Punteros
Objetivo: Practicar la manipulación de objetos de clases utilizando punteros y funciones miembro.
Descripción del Ejercicio
- Crea una clase llamada
Rectangle
que tenga dos atributos privados:width
yheight
. - Añade métodos públicos para establecer y obtener los valores de
width
yheight
. - Implementa un método llamado
area()
que calcule y devuelva el área del rectángulo. - En
main()
, crea un objetoRectangle
utilizando un puntero, establece sus dimensiones y muestra el área utilizando el puntero.
Código Base para el Ejercicio
#include <iostream>
class Rectangle {
private:
int width, height;
public:
void setDimensions(int w, int h) {
width = w;
height = h;
}
int getWidth() {
return width;
}
int getHeight() {
return height;
}
int area() {
return width * height;
}
};
int main() {
Rectangle* r = new Rectangle();
r->setDimensions(5, 10);
std::cout << "Area of Rectangle: " << r->area() << std::endl;
delete r;
return 0;
}
Soluciones
Las soluciones ya están incluidas en los códigos base proporcionados. Estos ejercicios te permitirán practicar la creación y manipulación de objetos mediante punteros, así como la implementación de polimorfismo utilizando métodos virtuales y la palabra clave override
.
¿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
- ✅ Cómo crear una aplicación To-Do List con C# y Windows Forms
- 🧠 ¿Qué es la herencia en C#? Ejemplo con personajes de videojuegos
- ¿Qué es una clase y un objeto en C#? Aprende a programar con ejemplos claros
- ¿Qué es una pila (stack)?
- ¿Qué es una función recursiva?
- ¿Qué es una enumeración en C#?
- 🧪 Simulacro de Examen – Programación II VJ1208 (Simulacro 5 – Estilo PDF)
- 🧪 Simulacro de Examen – Programación II VJ1208 (Sin estructuras dinámicas)
- ¿Qué son los Stack, Push, Pop y Peek en C#?
ELIGE TU RED FAVORITA Y SÍGUENOS.
AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.
Contenido restringido
Comments are closed