genel hatlarıyla teknik olarak class'lardan bahsedeyim.
basit bir şekilde bakacak olursak, class'lar aslında c'deki struct'lara çok benzerler. class'lar, sadece bir grup data tutan struct'ların aksine (örnek olarak student struct'ı id, name, surname saklayabilir) sakladıkları datalar üzerinde söz sahibi de olurlar (class'ın içine method yazabilirsiniz).
örnek olarak, c'de student struct'ta sakladıgınız öğrencinin notlarının ortalamasını hesaplayıp yazdırmak istiyorsunuz diyelim. bunun için, normalde global alana bir adet "void printAvg(student_t student)" fonksiyonu yazarsınız ve problemi çözersiniz. işin kötü yanı, bu fonksiyonun sadece student_t struct'ı için kullanılabilir olup global alanda her yerden erişilebilecek şekilde yaratılmış olmasıdır. eğer ortada sadece belli bir struct'ın kullanabileceği bir fonksiyon varsa, bu fonksiyonun her yerden erişilebilir olmasının bir anlamı var mıdır?
c++'ta class'lar, sadece belli bir yapıya (student_t) hitap eden fonksiyonların (printAvg) sadece ve sadece o yapı tarafından kullanılabilmesini mümkün kılar. böylece global alanda olusan gereksiz fonksiyon yıgınları, alakalı yapıların içinde sınıflandırılmıs olur ve dogru class tarafından erişilebilmesini sağlar; karısıklıgı önler.
önceden, printAvg(student) olarak çağırdıgınız fonksiyon, student.printAvg() olarak kullanıma hazır hale gelir. başkasının koduna bakıp bu satırı gördüğünüzde printAvg'ın sadece student class'ında kulllanılabilen bir method oldugunu anında anlarsınız.
class yapıları genel olarak böyledir ve işleri daha da kolaylastırmak ve verimlileştirmek için inheritance, polymorphism ve encapsulation gibi daha ileri yöntemler geliştirilmiştir.
0