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