$1.99 Domains* at GoDaddy.com

C++ Sınıfın Static Veri Elemanları

cders-149Veri elemanları sınıf içerisinde static anahtar sözcüğüyle bildirilebilir. Böyle bildirilmiş static veri elemanları sınıfın kendi veri elemanlarına dahil edilmez.

 

/*—–static.cpp—–*/

#include <stdio.h>

 

class X {

        static int x;

        int a;

    public:

        void fonk(void) { }

};

 

void main(void)

{

    X n;

 

    printf(“%d\n”, sizeof(X));  /*2*/

}

/*——————–*/

 

Sınıfın static veri elemanları aslında bir çeÅŸit global deÄŸiÅŸkendir, yalnızca sınıf ile iliÅŸkilendirilmiÅŸtir.  Yani adeta yalnızca sınıfın eriÅŸebildiÄŸi global bir deÄŸiÅŸkendir. Bunlar C’ce normal global deÄŸiÅŸkenler gibidirler, yani static ömürlüdürler. Sınıfın static veri elemanlarından bir tane bulunur. Bu elemana bir sınıf elemanıymış gibi eriÅŸilir.

 

/*—–static1.cpp—–*/

#include <stdio.h>

 

class X {

     public:

        static int x;

        int a;

        void fonk(void) { }

};

 

int X::x;

 

void main(void)

{

    X n;

    X z;

 

    n.x = 50;

    printf(“%d\n”, z.x); /*50*/

}

/*———————*/

 

Sınıfın static veri elemanı ayrıca dışarıda global bir biçimde tanımlanmak zorundadır. Bu tanımlama veri elemanı sınıfın hani bölgesinde olursa olsun tanımlanmak zorundadır. Sınıfın static veri elemanı normal bir veri elemanıymış gibi erişim kuralına uyar.

 

/*—–static2.cpp—–*/

#include <stdio.h>

 

class X {

    private:

        static int x;

        int a;

    public:

        X(int r)

       {

            a = r;

            ++x;

        }

        int GetCount(void)

       {

            return x;

        }

};

 

int X::x = 0;

 

void main(void)

{

    X a(10);

    X b(20);

 

    printf(“%d\n”, b.GetCount());

}

/*———————*/

 

Sınıfın static veri elemanına hangi sınıf nesnesiyle erişildiğinin hiçbir önemi yoktur.Bu nedenle sınıfın static veri elemanına doğrudan sınıf nesnesi olmadan sınıf ismi ve çözünürlük operatörüyle de erişilebilir.

 

Sınıf_ismi::static_veri_elemanı_ismi

 

Tabii bu erişimin geçerli olabilmesi için veri elemanının public bölgede olması gerekir. Genellikle sınıfın static veri elemanı public bölgeye yerleştirilir ve dışarıdan bu biçimde erişilir. 

Kategoriler: C++ Programlama, Yazılım

Tags: , , ,

Yorumlar

Yorum Yok

Yorumunuzu Ekleyin

Yorum eklemek için giris yapmalısınız.