Kurssisisältö
C++ OOP
C++ OOP
Miksi Käyttää Olio-Ohjelmointia?
Kuvittele, että sinulle annetaan tehtävä kehittää ohjelmistosovellus opiskelijatietojen hallintaan. Aluksi tämä saattaa vaikuttaa yksinkertaiselta. Voisit aloittaa käyttämällä yksinkertaisia muuttujia opiskelijan nimen ja keskiarvon (GPA) tallentamiseen.
main.cpp
int main() { std::string student_name = "Bob"; float grade_point_average = 3.3; }
Tämä lähestymistapa toimii hyvin yhden opiskelijan hallinnassa, mutta tilanne monimutkaistuu, kun opiskelijoita on useita. Naiivi ratkaisu voisi olla käyttää erillisiä muuttujia jokaiselle opiskelijalle, mutta tämä muuttuu nopeasti hankalaksi hallita. Taulukoiden käyttö on parempi vaihtoehto, sillä se vähentää toistoa ja parantaa järjestystä.
main.cpp
int main() { std::string names[2] { "Bob", "Ann" }; float avarage_grades[2] { 3.3, 3.7 }; }
Tämä toimii toistaiseksi. Mutta entä jos sinun täytyy tallentaa enemmän tietoja, kuten puhelinnumeroita, ilmoittautumispäiviä tai kurssilistoja? Kun tiedon määrä kasvaa, useiden erillisten taulukoiden hallinta muuttuu hankalaksi ja altistaa virheille.
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" }; }
Tämän datan hallintaan voidaan luoda funktioita, jotka ottavat nämä arvot parametreina suorittaakseen toimintoja, kuten opiskelijatietojen tulostaminen, GPA:n päivittäminen tai sähköpostiosoitteen muuttaminen. Useiden opiskelijoiden ja kenttien kanssa samoja parametreja toistetaan monissa funktioissa, mikä tekee koodista virhealtista ja vaikeasti ylläpidettävää.
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[]);
Jopa yksinkertaiset tehtävät vaativat saman taulukoiden joukon toistuvaa välittämistä. Kenttien lisääminen tekee koodista yhä monimutkaisempaa ja toisteisempaa.
Olio-ohjelmointi (OOP) ratkaisee tämän mahdollistamalla toisiinsa liittyvän datan ja toiminnallisuuden ryhmittelyn yhteen säiliöön, jota kutsutaan luokaksi. Tämä ei ainoastaan yksinkertaista koodiasi, vaan myös parantaa enkapsulaatiota hallitsemalla pääsyä sisäisiin yksityiskohtiin selkeiden, hyvin määriteltyjen rajapintojen kautta.
Kiitos palautteestasi!