Herencia de un solo nivel en C++

C++C++Beginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá a demostrar el concepto de Herencia de Nivel único en el lenguaje de programación C++. Creará dos clases, una clase padre y una clase hija, donde la clase hija (clase derivada) hereda las características (propiedades y métodos) de la clase padre (clase base o super clase).


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/OOPGroup(["OOP"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp/OOPGroup -.-> cpp/classes_objects("Classes/Objects") cpp/OOPGroup -.-> cpp/class_methods("Class Methods") cpp/OOPGroup -.-> cpp/constructors("Constructors") cpp/OOPGroup -.-> cpp/inheritance("Inheritance") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/user_input("User Input") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/classes_objects -.-> lab-96223{{"Herencia de un solo nivel en C++"}} cpp/class_methods -.-> lab-96223{{"Herencia de un solo nivel en C++"}} cpp/constructors -.-> lab-96223{{"Herencia de un solo nivel en C++"}} cpp/inheritance -.-> lab-96223{{"Herencia de un solo nivel en C++"}} cpp/output -.-> lab-96223{{"Herencia de un solo nivel en C++"}} cpp/user_input -.-> lab-96223{{"Herencia de un solo nivel en C++"}} cpp/files -.-> lab-96223{{"Herencia de un solo nivel en C++"}} cpp/code_formatting -.-> lab-96223{{"Herencia de un solo nivel en C++"}} end

Crea el archivo main.cpp

Primero, crea un archivo main.cpp en el directorio ~/project usando el siguiente comando:

touch ~/project/main.cpp

Escribe el código

Copia y pega el siguiente código en tu archivo main.cpp:

#include <iostream>
// Incluyendo las bibliotecas necesarias

using namespace std;

// Declarando una clase padre (clase base) llamada "Shape"
class Shape {
    public:
        float area(float l, float b) { // Método para calcular el Área de la Figura
            return (l * b);
        }

        float perimeter(float l, float b) { // Método para calcular el Perímetro de la Figura
            return (2 * (l + b));
        }
};

// Declarando una clase hija (clase derivada) llamada "Rectangle" que deriva o hereda de la clase Shape
class Rectangle: private Shape {
    private:
        float length,
        breadth;

    public:
        Rectangle(): length(0.0), breadth(0.0) {} // Constructor por defecto de Rectangle

        void getDimensions() { // Método para obtener las dimensiones del Rectángulo del usuario
            cout << "\nIngrese la longitud del Rectángulo: ";
            cin >> length;

            cout << "\nIngrese el ancho del Rectángulo: ";
            cin >> breadth;
        }

        // Método para Calcular el perímetro del Rectángulo usando la Clase Shape
        float perimeter() {
            // Llama al método perimeter() de la clase Shape y lo devuelve.
            return Shape::perimeter(length, breadth);
        }

        // Método para Calcular el área del Rectángulo usando la Clase Shape
        float area() {
            // Llama al método area() de la clase Shape y lo devuelve.
            return Shape::area(length, breadth);
        }
};

int main() {
    // Creando un objeto de la clase Rectangle
    Rectangle rect;

    // Mensaje de bienvenida
    cout << "\n\nBienvenido al Programa de Herencia de Nivel Único!\n";

    // Mensaje al usuario
    cout << "\nLa clase Rectangle se deriva de la clase Shape.\n\n";

    // Obteniendo las dimensiones del Rectángulo del usuario
    rect.getDimensions();

    // Calculando el Perímetro del Rectángulo usando la Clase Padre Shape y mostrando la salida
    cout << "\nPerímetro del Rectángulo calculado usando la Clase Padre Shape: " << rect.perimeter() << "\n";

    // Calculando el Área del Rectángulo usando la Clase Padre Shape y mostrando la salida
    cout << "Área del Rectángulo calculada usando la Clase Padre Shape: " << rect.area() << "\n\n";

    return 0;
}

Compila y ejecuta el código

A continuación, compila el código usando el siguiente comando:

g++ main.cpp -o main &&./main

Luego, ejecuta el código usando el siguiente comando:

./main

Entiende la salida

Después de ejecutar el programa, verás la siguiente salida:

Welcome to Single Level Inheritance Program!

Rectangle class is derived from the Shape class.

Enter the length of the Rectangle: 5

Enter the breadth of the Rectangle: 10

Perimeter of the Rectangle computed using the parent Class Shape: 30
Area of the Rectangle computed using the parent Class Shape: 50

El programa le pide al usuario que ingrese la longitud y el ancho del rectángulo. Después de obtener las dimensiones, calcula el perímetro y el área usando las funciones perimeter() y area() de la clase padre Shape.

Resumen

¡Felicidades! Has escrito con éxito un programa en C++ que demuestra el concepto de herencia de un solo nivel. Puedes experimentar con diferentes formas y la salida reflejará con precisión los cálculos para cualquier nueva clase derivada.