Sınıfın static üye fonksiyonları normal bir üye fonksiyonu gibidir. Ancak bu fonksiyonlara this göstericisi geçirilmez, yani bu fonksiyonlar içerisinden sınıfın veri elemanlarına erişilemez. Yani adeta sınıfla ilişkilendirilmiş global bir fonksiyon gibidirler. Yani sınıfın veri elemanlarını kullanmayan ancak mantıksal olarak sınıfa ilişkili olan global fonksiyonlar sınıfın static fonksiyonu yapılabilir. Sınıfın static üye fonksiyonuna this göstericisi geçirilmediğine göre bu fonksiyonun da özel olarak bir nesne ile çağırılmasının anlamı kalmaz. Sınıfın static üye fonksiyonu sınıf ismi belirtilerek çözünürlük operatörüyle doğrudan çağırılabilir. Tabii erişim kuralı bakımından public bölgede bildirilmiş olması gerekir. Sınıfın static üye fonksiyonu içerisinde sınıfın static olmayan bir üye fonksiyonu çağırılamaz, static olmayan bir veri elemanı kullanılamaz. Ama sınıfın static veri elemanları kullanılabilir ve static üye fonksiyonları çağırılabilir. Farklı sınıfların aynı isimli static üye fonksiyonları ya da veri elemanları bulunabilir.
Â
/*—–static5.cpp—–*/
#include <stdio.h>
Â
class X {
   private:
       int a;
       static int b;
   public:
       X(int n)
       {
           a = n;
           ++b;
       }
       void Disp(void);
       static void Fonk(void);
};
Â
int X::b = 0;
Â
void X::Disp(void)
{
   printf(“%d\n”, a);
}
Â
void X::Fonk(void)
{
   printf(“%d\n” ,b);
}
Â
void main(void)
{
   X n1(50);
   X n2(60);
Â
   X::Fonk();
}
/*———————*/
Yorumlar
Yorum Yok
Yorumunuzu Ekleyin
Yorum eklemek için giris yapmalısınız.