6 Şubat 2018 Salı

YAPICI VE YIKICI METOTLAR

CONSTRUCTOR

Yapıcı fonksiyonlar(Constructor), bulundukları class ile aynı isimli olurlar.Bir sınıftan nesne oluşturulduğu zaman o classın yapıcı fonksiyonu çalışır.Main fonksiyonundan hangi yapıcı fonksiyonu çağırırsak o fonksiyondaki işlemler yapılacaktır.Yapıcı fonksiyonlar parametre döndürmezler.Diğer fonksiyonları private yapabiliyorken yapıcı fonksiyonlar public erişime sahiptirler.Örnekte yapıcı fonksiyonu görelim.
Yapıcı fonksiyonu oluştururken classa ait olduğunu başta class adı ::’dan sonra yapıcı fonksiyonumuzu adını yazarak oluştururuz.
Bir classta parametresiz ile bir veya birden fazla parametreli birden fazla yapıcı fonksiyon bulunabilir.Birden fazla yapıcı fonksiyon kullanıldığı zaman aşırı yüklenme olur.
DECONSTRUCTOR
Yıkıcı fonksiyonlar(Deconstructor),yapıcı fonksiyonlar gibi bulundukları class ile aynı isimlidirler.Class ile işlemler bittiği zaman gereken işlemleri içeren fonksiyonlardır.Yapıcı fonksiyonların başında tilda(~) karakteri bulunur.Nesne  silineceği zaman yıkıcı fonksiyon çağırılır.Yıkıcı fonksiyon çağırıldığında bellek nesnenin yeri silinir ve yeni oluşacak nesne için yer açılır.Yıkıcı fonksiyonlarda parametre bulunmaz.Yıkıcı fonksiyonlar değer döndürmezler.Bir sınıfa ait bir yıkıcı fonksiyon olabilir.Yıkıcı fonksiyonlarda aşırı yüklenme olmaz.
Ekran çıktısında birşey dikkatinizi çekmiştir.’Yıkıcı Fonksiyon Çağırıldı’ üç kez yazıldı.Peki bunun sebebi ne olabilir?
Bunun sebebi main fonksiyonunda oluşturup çağırdığımız her bir yapıcı fonksiyon için ayrı ayrı yıkıcı fonksiyon çağırıldı.Bir tane yapıcı fonksiyonu kullansaydık;
Yıkıcı fonksiyonlar,bulundukları classlarda yapıcı fonksiyon kadar yıkıcı fonksiyon çalışır.
NESNE İŞARETÇİLERİ
İşaretçiler, veri değil, verinin yerleşik bulunduğu bellek gözünün adresini taşırlar. İşaretçiler basit tipte değişkenlere işaret edebildikleri gibi, bir nesneye de işaret edebilirler. İşaretçiler kullanılmadan önce uygun başlangıç değeri atanmalıdır: 
NEW
New İşletim sisteminden uygun miktarda bellek alanı alır. Döndürdüğü değer bu alanın başlangıç adresidir. Eğer işlem başarısız olursa 0 (NULL) döndürür. Nesne işaretçilerinde new kullanıldı new  yukarıdakine ek olarak nesnenin kurucu fonksiyonu çalıştırılır. Böylece nesne yaratılırken başlangıç değerleri atanmış olur.
DELETE
delete Belleğin verimli ve etkin kullanımı için, new operatörünün kullanımına karşılık olarak bellek alanı kullanımı bittiğinde işletim sistemine delete operatörü ile geri verilmelidir. new ile aşağıdaki biçimde bir nesne dizisi için bellek alındığında int * ptr = new int[10]; delete ile delete [ ] ptr; şeklinde işletim siteminde geri verilmelidir. İşaretçi önündeki “[]” kullanılmaz ise sadece dizinin ilk elemanı için bellek alanı geri verilir.

Hiç yorum yok:

Yorum Gönder

C++ Operatorlerin Aşırı Yüklenmesi

C++ Operatorlerin Aşırı Yüklenmesi (Operator Overloading) C++’ da +,-,*,!,++ gibi operatörler fonksiyonlar yazılarak bu operatörlere...