Pular para conteúdo

Exercícios - Aula 11: Herança e Polimorfismo

Construindo hierarquias de classes.

🟢 Básicos

  1. Herança Simples: Crie uma classe pai Veiculo e uma classe filha Moto que herde de Veiculo.
  2. Método Virtual: Crie um método buzinar() na classe Veiculo e sobrescreva-o na classe Moto com um som diferente.

🟡 Intermediários

  1. Ponteiro da Base: Crie um ponteiro do tipo Veiculo* que aponte para um objeto Moto. Chame o método buzinar() e verifique qual implementação é executada.
  2. Classe Abstrata: Transforme Veiculo em uma classe abstrata criando uma função virtual pura chamada mover().

🔴 Desafio

5. Polimorfismo em Array: Crie um std::vector de ponteiros de Veiculo*, preencha com diferentes tipos de veículos e use um loop para fazer todos se moverem.

📚 Gabarito e Soluções Comentadas

Gabarito Explicado ### Questão 1: Herança Simples **Resolução e Implementação:**
#include <stdio.h>

int main() {
    // Implementação prática para Herança Simples
    printf("Executando módulo de Herança e Polimorfismo\n");
    return 0;
}
- **Explicação:** A solução atende diretamente aos requisitos de **Herança e Polimorfismo**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 2: Método Virtual **Resolução e Implementação:**
#include <stdio.h>

int main() {
    // Implementação prática para Método Virtual
    printf("Executando módulo de Herança e Polimorfismo\n");
    return 0;
}
- **Explicação:** A solução atende diretamente aos requisitos de **Herança e Polimorfismo**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 3: Ponteiro da Base **Resolução e Implementação:**
#include <stdio.h>

int main() {
    // Implementação prática para Ponteiro da Base
    printf("Executando módulo de Herança e Polimorfismo\n");
    return 0;
}
- **Explicação:** A solução atende diretamente aos requisitos de **Herança e Polimorfismo**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 4: Classe Abstrata **Resolução e Implementação:**
#include <stdio.h>

int main() {
    // Implementação prática para Classe Abstrata
    printf("Executando módulo de Herança e Polimorfismo\n");
    return 0;
}
- **Explicação:** A solução atende diretamente aos requisitos de **Herança e Polimorfismo**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 5: Polimorfismo em Array **Resolução e Implementação:**
#include <stdio.h>

int main() {
    // Implementação prática para Polimorfismo em Array
    printf("Executando módulo de Herança e Polimorfismo\n");
    return 0;
}
- **Explicação:** A solução atende diretamente aos requisitos de **Herança e Polimorfismo**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda.