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
- Las maravillas de las ciencias biológicas según la Academia SanRoque
- La motivación en Academia SanRoque
- Los docentes también se divierten.
- Comandos Principales en MongoDB y sus Equivalentes en Java
- Las bondades de escribir y leer cada día: herramientas esenciales para la vida académica, empresarial y social
- Immanuel Kant: Disertación contra las IA
- Forma Normal de Boyce-Codd (FNBC) en Bases de Datos
- Las Formas Normales en Bases de Datos
- La importancia de rodearte de personas virtuosas para alcanzar tus metas
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