C’de ve C++’ta aslında yalnızca nesnelerin deÄŸil her türden deÄŸiÅŸkenlerin faaliyet alanı vardır. ÖrneÄŸin bir blok içerisinde bir typedef ismi bildirilirse o typdef ismi o bloÄŸun dışından kullanılamaz. Bir sınıf içerisinde typedef, enum, struct, baÅŸka bir sınıf ya da union bildirimi yapılabilir. Bu bildirimere iliÅŸkin isimlere ancak o sınıfların üye fonksiyonları içerisinden doÄŸrudan eriÅŸilebilir(yani sınıf ismi belirtmeden). Ancak bu isimler sınıfn public bölümündeyse sınıf ismi ve çözünürlük operatörüyle eriÅŸim saÄŸlanabilir. ÖrneÄŸin:
Â
class X {
           public:
                       typedef int *PINT;
…
…
…
};
Â
void main(void)
{
           PINT n;          /*Error*/
           X::PINT n;     /*Doğru kullanım*/
}
Â
Bir sınıfın içerisinde başka bir sınıf ya da yapı bildirimi de yapılabilir. Bu durumda içerde bildirilmiş olan sınıf yalnızca dışarıda bildirilmiş sınıf içerisinden doğrudan kulanılabilir. Örneğin:
Â
class X {
           public:
                       class Y {
                                  …
                                  …
                       };
           …
           …
};
Â
void main(void)
{
           Y n;                /*Error*/
           X::Y n;                      /*Doğru kullanım*/
}
Â
Bir sınıf bir sınıfı içeriyorsa aralarında hiçbir veri elemanı içerme gibi bir durum yoktur(yani C’deki iç içe yapılarda olduÄŸu gibi deÄŸildir). Aslında bu iki sınıf tamamen birbirlerinden farklı bağımsız olarak dışarıda bildirilebilecek iki sınıftır. İçeride bildirilmiÅŸ sınıf yalnızca dışarıdaki sınıf içerisinde isim bakımından doÄŸrudan kullanılabilir.Â
Yorumlar
Yorum Yok
Yorumunuzu Ekleyin
Yorum eklemek için giris yapmalısınız.