COMPARTE ESTE ARTÍCULO

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

  1. Define una clase base llamada Vehicle que tenga un método virtual llamado displayInfo().
  2. Crea dos clases derivadas: Car y Bike.
  3. En cada clase derivada, override el método displayInfo() para que muestre información específica del vehículo.
  4. En la función main(), crea un objeto de tipo Car y otro de tipo Bike utilizando punteros de tipo Vehicle. Utiliza estos punteros para llamar al método displayInfo().

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

  1. Crea una clase llamada Rectangle que tenga dos atributos privados: width y height.
  2. Añade métodos públicos para establecer y obtener los valores de width y height.
  3. Implementa un método llamado area() que calcule y devuelva el área del rectángulo.
  4. En main(), crea un objeto Rectangle 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

INSTAGRAM

TIKTOK


 …Y PRONTO MUCHAS MÁS

AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.

Contenido restringido

Acceso de usuarios existentes

Demuestra que eres un ser humano


   
Registro de un nuevo usuario
*Campo necesario

Categories:

Tags:

Comments are closed

Estado de acceso

Demuestra que eres un ser humano


ESTADO DE ACCESO

Demuestra que eres un ser humano


TRADUCTORES
COMPARTENOS
Insert math as
Block
Inline
Additional settings
Formula color
Text color
#333333
Type math using LaTeX
Preview
\({}\)
Nothing to preview
Insert
error: CONTENIDO PROTEGIDO