Capítulo 09: Estruturas (Structs) 🤖🌆

Neste capítulo, vamos aprender a criar nossos próprios tipos de dados compostos usando as Structs, com o tema Cyberpunk 2077! No C++, as structs ganham superpoderes!


📖 O que são Structs?

Uma struct (estrutura) é uma coleção de variáveis (que podem ser de tipos diferentes) agrupadas sob um único nome. No C++, diferente do C clássico, as structs também podem conter funções (métodos), funcionando quase como uma classe!


📖 Exemplo Guiado: Registro de Mercenário

Vamos criar uma estrutura para representar um Mercenário de Night City.

  1. Crie o arquivo mercenario.cpp na pasta src/:
#include <iostream>
#include <string>
 
using namespace std;
 
// Definindo a estrutura
struct Mercenario {
    string apelido;
    int nivel;
    float cibernetica; // Porcentagem de implantes
 
    // No C++ a struct pode ter funções dentro dela!
    void exibir_status() {
        cout << "--- Registro de Night City ---" << endl;
        cout << "Apelido: " << apelido << endl;
        cout << "Nivel: " << nivel << endl;
        cout << "Implantes: " << cibernetica << "%" << endl;
    }
};
 
int main() {
    // Criando uma variável do tipo Mercenario (não precisa da palavra 'struct' antes!)
    Mercenario v;
 
    // Atribuindo valores
    v.apelido = "V";
    v.nivel = 50;
    v.cibernetica = 75.5;
 
    // Chamando a função da struct
    v.exibir_status();
 
    return 0;
}

🕹️ Como Executar e Testar no VS Code

  1. Abra o terminal integrado.
  2. Compile: g++ mercenario.cpp -o mercenario
  3. Execute: ./mercenario

Resultado Esperado:

--- Registro de Night City ---
Apelido: V
Nivel: 50
Implantes: 75.5%

📊 Ilustração Visual: Estrutura da Struct

Veja como os dados e funções ficam agrupados:

classDiagram
    class Mercenario {
        +string apelido
        +int nivel
        +float cibernetica
        +exibir_status()
    }

🛠️ Prática Obrigatória 1: Cadastro de Ciborgue

Crie um programa chamado cadastro_ciborgue.cpp que use uma struct para armazenar os dados de um ciborgue (modelo, bateria e se está ativo ou não). Adicione uma função dentro da struct para exibir esses dados formatados.


🔑 Gabarito de Código

Prática 1: cadastro_ciborgue.cpp

#include <iostream>
#include <string>
 
using namespace std;
 
struct Ciborgue {
    string modelo;
    int bateria;
    bool ativo;
 
    void exibir() {
        cout << endl << "--- Ciborgue Cadastrado ---" << endl;
        cout << "Modelo: " << modelo << endl;
        cout << "Bateria: " << bateria << "%" << endl;
        cout << "Status: " << (ativo ? "Ativo" : "Inativo") << endl;
    }
};
 
int main() {
    Ciborgue c;
 
    cout << "Digite o modelo do ciborgue: ";
    cin >> c.modelo;
    cout << "Digite o nivel da bateria: ";
    cin >> c.bateria;
    cout << "Esta ativo? (1-Sim / 0-Nao): ";
    cin >> c.ativo;
 
    c.exibir();
 
    return 0;
}

📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)

(Siga o padrão estabelecido no Guia)


Capitulo Anterior | Proximo Capitulo