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
Vehicleque tenga un método virtual llamadodisplayInfo(). - Crea dos clases derivadas:
CaryBike. - En cada clase derivada,
overrideel métododisplayInfo()para que muestre información específica del vehículo. - En la función
main(), crea un objeto de tipoCary otro de tipoBikeutilizando 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
Rectangleque tenga dos atributos privados:widthyheight. - Añade métodos públicos para establecer y obtener los valores de
widthyheight. - Implementa un método llamado
area()que calcule y devuelva el área del rectángulo. - En
main(), crea un objetoRectangleutilizando 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
- 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