Contenido del Curso
POO en C++
POO en C++
¿Por Qué Usar la Programación Orientada a Objetos?
Imagina que se te asigna la tarea de desarrollar una aplicación de software para gestionar datos de estudiantes. Al principio, podría parecer sencillo. Podrías comenzar utilizando variables simples para almacenar el nombre y el promedio (GPA) de un estudiante.
main.cpp
int main() { std::string student_name = "Bob"; float grade_point_average = 3.3; }
Este enfoque funciona bien para gestionar un solo estudiante, pero la situación se vuelve más compleja con varios estudiantes. Una solución ingenua podría utilizar variables separadas para cada uno, pero esto rápidamente se vuelve inmanejable. Utilizar arreglos es una mejor opción para reducir la repetición y mejorar la organización.
main.cpp
int main() { std::string names[2] { "Bob", "Ann" }; float avarage_grades[2] { 3.3, 3.7 }; }
Esto funciona por ahora. Pero, ¿qué sucede si necesita almacenar más detalles, como números de teléfono, fechas de inscripción o listas de cursos? A medida que los datos crecen, gestionar múltiples arreglos separados se vuelve engorroso y propenso a errores.
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 gestionar estos datos, podrías crear funciones que reciban estos valores como argumentos para realizar acciones como imprimir la información del estudiante, actualizar el GPA o cambiar la dirección de correo electrónico. Sin embargo, con múltiples estudiantes y campos, terminas repitiendo los mismos argumentos en muchas funciones, lo que hace que el código sea propenso a errores y difícil de mantener.
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[]);
Incluso las tareas simples requieren pasar el mismo conjunto de arreglos repetidamente. A medida que agregas más campos, el código se vuelve cada vez más complejo y repetitivo.
La Programación Orientada a Objetos (OOP) resuelve esto permitiendo agrupar datos y comportamientos relacionados en un solo contenedor llamado clase. Esto no solo simplifica tu código, sino que también mejora la encapsulación al controlar el acceso a los detalles internos mediante interfaces claras y bien definidas.
¡Gracias por tus comentarios!