Contenu du cours
Programmation Orientée Objet en C++
Programmation Orientée Objet en C++
Pourquoi utiliser la programmation orientée objet ?
Imaginez que l'on vous confie la tâche de développer une application logicielle pour gérer les données des étudiants. Cela peut sembler simple au premier abord. Vous pourriez commencer par utiliser de simples variables pour stocker le nom et la moyenne générale (GPA) d’un étudiant.
main.cpp
int main() { std::string student_name = "Bob"; float grade_point_average = 3.3; }
Cette méthode fonctionne correctement pour gérer un seul étudiant, mais la situation se complique avec plusieurs étudiants. Une solution naïve consisterait à utiliser des variables distinctes pour chacun, mais cela devient rapidement ingérable. L’utilisation de tableaux constitue une meilleure option pour réduire la répétition et améliorer l’organisation.
main.cpp
int main() { std::string names[2] { "Bob", "Ann" }; float avarage_grades[2] { 3.3, 3.7 }; }
Cela fonctionne pour l’instant. Mais que faire si vous devez stocker plus de détails, comme des numéros de téléphone, des dates d’inscription ou des listes de cours ? À mesure que les données augmentent, la gestion de plusieurs tableaux séparés devient lourde et sujette aux erreurs.
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" }; }
Pour gérer ces données, vous pourriez créer des fonctions qui prennent ces valeurs comme arguments afin d'effectuer des actions telles que l'affichage des informations de l'étudiant, la mise à jour du GPA ou la modification de l'adresse e-mail. Cependant, avec plusieurs étudiants et champs, vous finissez par répéter les mêmes arguments dans de nombreuses fonctions, rendant le code sujet aux erreurs et difficile à maintenir.
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[]);
Même les tâches simples nécessitent de passer à plusieurs reprises le même ensemble de tableaux. À mesure que vous ajoutez des champs, le code devient de plus en plus complexe et répétitif.
La programmation orientée objet (POO) résout ce problème en permettant de regrouper les données et les comportements associés dans un seul conteneur appelé classe. Cela permet non seulement de simplifier le code, mais aussi d'améliorer l'encapsulation en contrôlant l'accès aux détails internes via des interfaces claires et bien définies.
Merci pour vos commentaires !