Cursusinhoud
C++ OOP
C++ OOP
Waarom Objectgeoriënteerd Programmeren Gebruiken?
Stel je voor dat je de taak krijgt om een softwaretoepassing te ontwikkelen om studentgegevens te beheren. Dit lijkt in eerste instantie eenvoudig. Je zou kunnen beginnen met het gebruik van eenvoudige variabelen om de naam en GPA van een student op te slaan.
main.cpp
int main() { std::string student_name = "Bob"; float grade_point_average = 3.3; }
Deze aanpak werkt prima voor het beheren van één enkele student, maar het wordt ingewikkelder bij meerdere studenten. Een naïeve oplossing zou zijn om voor elke student aparte variabelen te gebruiken, maar dit wordt al snel onbeheerbaar. Het gebruik van arrays is een betere optie om herhaling te verminderen en de organisatie te verbeteren.
main.cpp
int main() { std::string names[2] { "Bob", "Ann" }; float avarage_grades[2] { 3.3, 3.7 }; }
Dit werkt voorlopig. Maar wat als je meer details moet opslaan, zoals telefoonnummers, inschrijfdata of cursussenlijsten? Naarmate de gegevens toenemen, wordt het beheren van meerdere afzonderlijke arrays lastig en foutgevoelig.
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" }; }
Om deze gegevens te beheren, kun je functies maken die deze waarden als argumenten nemen om acties uit te voeren zoals het afdrukken van studentinformatie, het bijwerken van de GPA of het wijzigen van het e-mailadres. Maar met meerdere studenten en velden herhaal je dezelfde argumenten in veel functies, waardoor de code foutgevoelig en moeilijk te onderhouden wordt.
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[]);
Zelfs eenvoudige taken vereisen het herhaaldelijk doorgeven van dezelfde set arrays. Naarmate je meer velden toevoegt, wordt de code steeds complexer en herhalender.
Objectgeoriënteerd programmeren (OOP) lost dit op door gerelateerde gegevens en gedrag te groeperen in één container, een klasse. Dit vereenvoudigt je code en verbetert de encapsulatie door toegang tot interne details te regelen via duidelijke, goed gedefinieerde interfaces.
Bedankt voor je feedback!