Capítulo 12: Classes e Objetos (POO) 🦸♂️💥
Bem-vindo ao coração do C++! Neste capítulo, vamos aprender o pilar da Programação Orientada a Objetos (POO): as Classes e os Objetos, usando o tema Os Vingadores!
📖 O que é Programação Orientada a Objetos?
Até agora, programamos de forma procedural (focada em funções e passos). Na POO, pensamos no mundo como um conjunto de Objetos que interagem entre si.
- Classe: É o molde, a planta ou a receita de bolo. (Ex: A classe
Heroi). - Objeto: É a instância real criada a partir do molde. (Ex: O objeto
homem_de_ferro).
📖 Exemplo Guiado: Criando um Herói
Vamos criar uma classe Heroi com atributos (nome, poder) e um método (ação).
- Crie o arquivo
herois.cppna pastasrc/:
#include <iostream>
#include <string>
using namespace std;
// Definindo a Classe
class Heroi {
public: // Permite que os atributos sejam acessados de fora
string nome;
string poder;
// Método (Função da classe)
void usar_poder() {
cout << nome << " usou o poder: " << poder << "!" << endl;
}
};
int main() {
// Criando objetos a partir da classe
Heroi heroi1;
heroi1.nome = "Homem de Ferro";
heroi1.poder = "Super Armadura";
Heroi heroi2;
heroi2.nome = "Thor";
heroi2.poder = "Trovao";
// Usando os métodos
cout << "--- Batalha Iniciada ---" << endl;
heroi1.usar_poder();
heroi2.usar_poder();
return 0;
}🕹️ Como Executar e Testar no VS Code
- Abra o terminal integrado.
- Compile:
g++ herois.cpp -o herois - Execute:
./herois
Resultado Esperado:
--- Batalha Iniciada ---
Homem de Ferro usou o poder: Super Armadura!
Thor usou o poder: Trovao!📊 Ilustração Visual: Classe vs Objeto
Veja como a classe serve de molde para vários objetos:
graph TD A["Classe: Heroi <br> - nome <br> - poder <br> + usar_poder()"] -->|"Instancia"| B["Objeto: heroi1 <br> nome: Homem de Ferro"] A -->|"Instancia"| C["Objeto: heroi2 <br> nome: Thor"]
🛠️ Prática Obrigatória 1: Criando Vilões
Crie um programa chamado viloes.cpp com uma classe Vilao que tenha os atributos nome, plano_maligno e um método executar_plano(). Instancie dois vilões (ex: Thanos e Loki) e faça-os executar seus planos!
🔑 Gabarito de Código
Prática 1: viloes.cpp
#include <iostream>
#include <string>
using namespace std;
class Vilao {
public:
string nome;
string plano_maligno;
void executar_plano() {
cout << nome << " esta executando o plano: " << plano_maligno << "!" << endl;
}
};
int main() {
Vilao vilao1;
vilao1.nome = "Thanos";
vilao1.plano_maligno = "Dizimar metade do universo";
Vilao vilao2;
vilao2.nome = "Loki";
vilao2.plano_maligno = "Dominar a Terra";
cout << "--- Planos Malignos Ativados ---" << endl;
vilao1.executar_plano();
vilao2.executar_plano();
return 0;
}📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
(Siga o padrão estabelecido no Guia)