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.
- Crie o arquivo
mercenario.cppna pastasrc/:
#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
- Abra o terminal integrado.
- Compile:
g++ mercenario.cpp -o mercenario - 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)