1.     Başlangıç Fonksiyonları(constructors)
Â
Bir sınıf destesi tanımlandığında derleyici tarafından otomatik olarak çağırılan fonksiyona sınıfın başlangıç fonksiyonu denir. Yerel bir sınıf nesnesi programın akışı tanımlama noktasına geldiğinde, global bir sınıf nesnesiyse program belleğe yüklenir yüklenmez yaratılır. Başlangıç fonksiyonun ismi sınıf ismiyle aynı olmalıdır. Başlangıç fonksiyonlarının geri dönüş değeri gibi bir kavramı yoktur. Yani geri dönüş türü yerine bir şey yazılmaz. bu durum int ya da void anlamına gelmez. Başlangış fonksiyonları içerisinde return anahtar sözcüğü kullanılabilir, ancak yanına bir ifade yazılamaz. C++’ta farklı parametre yapısına sahip birden fazla başlangıç fonksiyonu olabilir. Parametresi olmayan(yani void olan) başlangış fonksiyonuna default başlangıç fonksiyonu(default constructor) denir. Eğer sınıf nesnesi nesne isminden sonra parantez açılmadan yani normal bir biçimde tanımlanmış ise (örneğin: X n;) bu durumda varsayılan başlangıç fonksiyonu çağırılır. Eğer nesne isminden sonra bir parantez açılır ve içerisine bir parametre listesi yazılırsa (örneğin: X n(10);) parametre listesine uygun olan başlangıç fonksiyonu çağırılır.
           Uyarı: Nesne isminden sonra parantez açılıp içine hiçbirşey yazılmazsa bu durumda varsayılan başlangıç fonksiyonu çağırılmaz. Bu ifade bir fonksiyon prototipi anlamına gelir. Örneğin:
Â
X a();  /*parametresi olmayan, X türünden bir fonksiyonun prototipi*/
Â
Global sınıf nesnelerine ait başlangıç fonksiyonları main fonksiyonundan önce çağırılır. Daha yukarıda tanımlanan daha önce çağırılacak bir biçimde sıralama söz konusudur.
Â
2.     Bitiş Fonksiyonu(destructor)
Â
Bir nesne faaliyet alanını bitirmesiyle bellekten silinir. Yerel deÄŸiÅŸkenler programın akışı tanımlandıkları bloÄŸun sonunda, global deÄŸiÅŸkenler ise programın bitimiyle bellekten silinirler. Bir sınıf nesnesi bellekten silineceÄŸi zaman otomatik olarak çağırılan fonksiyona bitiÅŸ fonksiyonu(destructor function) denir. BitiÅŸ fonksiyonunun ismi sınıf ismiyle aynıdır, anck başına bir ~ sembolü getirilir. BitiÅŸ fonksiyonunun da geri dönüş deÄŸeri gibi bir kavramı yoktur. BitiÅŸ fonksiyonu en az ve en fazla bir tane olabilir. Parametresi void olmak zorundadır. Yani parametresi olmamak zorundadır. Varsayılan bitiÅŸ fonksiyonu diye bir kavram yoktur. Global bir sınıf nesnesine ait bitiÅŸ fonksiyonu programın sonucunda main bittikten sonra yani main’in sonunda çalıştırılır. BaÅŸlangıç ve bitiÅŸ fonksiyonlarının çağırılma sıraları her zaman terstir. a ve b herhangi türden iki sınıf nesnesi olmak üzere baÅŸlangıç fonksiyonları önce a sonra b olacak ÅŸeklinde çağırılıyorsa bitiÅŸ fonsiyonları önce b sonra a ÅŸeklinde çağırılır(LIFO sistemi).Â
Yorumlar
Yorum Yok
Yorumunuzu Ekleyin
Yorum eklemek için giris yapmalısınız.