Herança de Nível Único em C++

C++Beginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como demonstrar o conceito de Herança de Nível Único (Single Level Inheritance) na linguagem de programação C++. Você criará duas classes, uma classe pai e uma classe filha, onde a classe filha (classe derivada - derived class) herda as características (propriedades e métodos) da classe pai (classe base ou superclasse - base or super class).

Criar o arquivo main.cpp

Primeiramente, crie um arquivo main.cpp no diretório ~/project usando o seguinte comando:

touch ~/project/main.cpp

Escrever o código

Copie e cole o seguinte código no seu arquivo main.cpp:

#include <iostream>
// Incluindo as bibliotecas necessárias

using namespace std;

// Declarando uma classe pai (classe base) chamada "Shape"
class Shape {
    public:
        float area(float l, float b) { // Método para calcular a Área da Forma
            return (l * b);
        }

        float perimeter(float l, float b) { // Método para calcular o Perímetro da Forma
            return (2 * (l + b));
        }
};

// Declarando uma classe filha (classe derivada) chamada "Rectangle" que deriva ou herda da classe Shape
class Rectangle: private Shape {
    private:
        float length,
        breadth;

    public:
        Rectangle(): length(0.0), breadth(0.0) {} // Construtor padrão do Rectangle

        void getDimensions() { // Método para obter as dimensões do Rectangle do usuário
            cout << "\nDigite o comprimento do Rectangle: ";
            cin >> length;

            cout << "\nDigite a largura do Rectangle: ";
            cin >> breadth;
        }

        // Método para Calcular o perímetro do Rectangle usando a Classe Shape
        float perimeter() {
            // Chama o método perimeter() da classe Shape e o retorna.
            return Shape::perimeter(length, breadth);
        }

        // Método para Calcular a área do Rectangle usando a Classe Shape
        float area() {
            // Chama o método area() da classe Shape e o retorna.
            return Shape::area(length, breadth);
        }
};

int main() {
    // Criando um objeto da classe Rectangle
    Rectangle rect;

    // Mensagem de boas-vindas
    cout << "\n\nBem-vindo ao Programa de Herança de Nível Único!\n";

    // Mensagem para o usuário
    cout << "\nA classe Rectangle é derivada da classe Shape.\n\n";

    // Obtendo as dimensões do Rectangle do usuário
    rect.getDimensions();

    // Calculando o Perímetro do Rectangle usando a classe pai Shape e exibindo a saída
    cout << "\nPerímetro do Rectangle calculado usando a classe pai Shape: " << rect.perimeter() << "\n";

    // Calculando a Área do Rectangle usando a classe pai Shape e exibindo a saída
    cout << "Área do Rectangle calculada usando a classe pai Shape: " << rect.area() << "\n\n";

    return 0;
}

Compilar e Executar o código

Em seguida, compile o código usando o seguinte comando:

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

Depois, execute o código usando o seguinte comando:

./main

Compreender a saída

Após executar o programa, você verá a seguinte saída:

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

O programa solicita ao usuário que insira o comprimento e a largura do retângulo. Após obter as dimensões, ele calcula o perímetro e a área usando as funções perimeter() e area() da classe pai Shape.

Resumo

Parabéns! Você escreveu com sucesso um programa C++ demonstrando o conceito de herança de nível único (single level inheritance). Você pode experimentar com diferentes formas e a saída refletirá com precisão os cálculos para quaisquer novas classes derivadas.