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
.
… … …
¡Coméntanos que te ha parecido este artículo al final de la página!
TÚ OPINIÓN IMPORTA
NUESTRAS ÚLTIMAS PUBLICACIONES
- Fundamentos Teóricos de PHP, MySQL, phpMyAdmin, Métodos GET y POST, y el Concepto de CRUD
- Introducción a PHP, MySQL, phpMyAdmin y Cómo Crear un CRUD en PHP para Principiantes
- Teoría y Práctica: PHP, MySQL, phpMyAdmin y Cómo Crear un CRUD en PHP
- Título del Artículo: Cómo Crear un Formulario en PHP con PDO para Insertar Datos en una Base de Datos
- Título del Artículo: Cómo Crear un Formulario en PHP para Insertar Datos en una Base de Datos
- Crear un Formulario en PHP para Resolver Ecuaciones de Segundo Grado
- Los tartesos.
- La ciencias y grandes personajes.
- Cómo Activar las Teclas de Función (F1, F2, F3, etc.) desde la BIOS en un Asus ZenBook UX363EA
Contenido restringido
Comments are closed