Kursinhalt
C++ OOP
C++ OOP
Warum Objektorientierte Programmierung Verwenden?
Stellen Sie sich vor, Sie erhalten die Aufgabe, eine Softwareanwendung zur Verwaltung von Studentendaten zu entwickeln. Dies erscheint zunächst unkompliziert. Möglicherweise beginnen Sie damit, einfache Variablen zu verwenden, um den Namen und den Notendurchschnitt (GPA) eines Studenten zu speichern.
main.cpp
int main() { std::string student_name = "Bob"; float grade_point_average = 3.3; }
Dieser Ansatz funktioniert gut für die Verwaltung eines einzelnen Studenten, aber bei mehreren Studenten wird es komplexer. Eine naive Lösung könnte darin bestehen, für jeden Studenten separate Variablen zu verwenden, was jedoch schnell unübersichtlich wird. Die Verwendung von Arrays ist eine bessere Option, um Wiederholungen zu reduzieren und die Organisation zu verbessern.
main.cpp
int main() { std::string names[2] { "Bob", "Ann" }; float avarage_grades[2] { 3.3, 3.7 }; }
Dies funktioniert vorerst. Aber was ist, wenn weitere Details gespeichert werden müssen, wie zum Beispiel Telefonnummern, Einschreibedaten oder Kurslisten? Mit wachsendem Datenumfang wird die Verwaltung mehrerer separater Arrays zunehmend umständlich und fehleranfällig.
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" }; }
Um diese Daten zu verwalten, könnten Sie Funktionen erstellen, die diese Werte als Argumente entgegennehmen, um Aktionen wie das Ausgeben von Studentendaten, das Aktualisieren des GPA oder das Ändern der E-Mail-Adresse durchzuführen. Bei mehreren Studierenden und Feldern wiederholen sich jedoch die gleichen Argumente in vielen Funktionen, was den Code fehleranfällig und schwer wartbar macht.
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[]);
Selbst einfache Aufgaben erfordern das wiederholte Übergeben derselben Arrays. Mit jedem weiteren Feld wird der Code zunehmend komplexer und redundanter.
Objektorientierte Programmierung (OOP) löst dieses Problem, indem sie es ermöglicht, zusammengehörige Daten und Verhalten in einem einzigen Container, einer Klasse, zu bündeln. Dies vereinfacht den Code und verbessert die Kapselung, indem der Zugriff auf interne Details durch klare, gut definierte Schnittstellen gesteuert wird.
Danke für Ihr Feedback!