Conteúdo do Curso
C++ Poo
C++ Poo
Por Que Usar Programação Orientada a Objetos?
Imagine que você recebeu a tarefa de desenvolver um aplicativo de software para gerenciar dados de estudantes. À primeira vista, pode parecer simples. Você pode começar utilizando variáveis simples para armazenar o nome e o GPA de um estudante.
main.cpp
int main() { std::string student_name = "Bob"; float grade_point_average = 3.3; }
Essa abordagem funciona bem para gerenciar um único estudante, mas as coisas ficam mais complexas com múltiplos estudantes. Uma solução ingênua pode utilizar variáveis separadas para cada um, mas isso rapidamente se torna incontrolável. Utilizar arrays é uma opção melhor para reduzir a repetição e melhorar a organização.
main.cpp
int main() { std::string names[2] { "Bob", "Ann" }; float avarage_grades[2] { 3.3, 3.7 }; }
Isso funciona por enquanto. Mas e se for necessário armazenar mais detalhes, como números de telefone, datas de matrícula ou listas de cursos? À medida que os dados aumentam, gerenciar vários arrays separados torna-se trabalhoso e propenso a erros.
main.cpp
int main() { std::string names[2] { "Bob", "Ann" }; float average_grades[2] { 3.3f, 3.7f }; std::string emails[2] { "bob@example.com", "ann@example.com" }; }
Para gerenciar esses dados, pode-se criar funções que recebem esses valores como argumentos para realizar ações como exibir informações do estudante, atualizar o GPA ou alterar o endereço de e-mail. No entanto, com vários estudantes e campos, acaba-se repetindo os mesmos argumentos em diversas funções, tornando o código propenso a erros e difícil de manter.
functions.h
void get_student_info(int id, std::string names[], float gpa[], std::string emails[]); void set_student_info(int id, std::string names[], float gpa[], std::string emails[]); void set_student_name(int id, std::string names[], float gpa[], std::string emails[]); void set_student_gpa(int id, std::string names[], float gpa[], std::string emails[]); void set_student_email(int id, std::string names[], float gpa[], std::string emails[]);
Mesmo tarefas simples exigem a passagem do mesmo conjunto de arrays repetidamente. Ao adicionar mais campos, o código se torna cada vez mais complexo e repetitivo.
A Programação Orientada a Objetos (POO) resolve isso ao permitir agrupar dados e comportamentos relacionados em um único contêiner chamado classe. Isso não apenas simplifica o código, mas também melhora a encapsulação ao controlar o acesso aos detalhes internos por meio de interfaces claras e bem definidas.
Obrigado pelo seu feedback!