$1.99 Domains* at GoDaddy.com

C++ ArkadaÅŸ Fonksiyonlar

cders-146Global bir fonksiyonu bir sııfın arkadaş fonksiyonu yapabilmek için prototipinin önüne friend sözcüğü getirilmelidir. Arkadaş fonksiyonlar dışarıda normal global fonsiyonlardır. Ancak erişim bakımından ayrıcalıklı fonksiyonlardır. Arkadaş fonksiyonlar erişim bakımından ayrıcalıklıdır. Bir arkadaş fonksiyon içerisinde arkadaş olunan sınıfa ilişkin bir nesne tanımlanırsa o nesne yoluyla sınıfın her yerine erişilir. Bir fonksiyon birden fazla sınıfın arkadaş fonksiyonu olabilir. Arkadaş fonksiyon bildirimi sınıfın herhangibir bölümünde yapılabilir. Hangi bölümde yapıldığının hiçbir etkisi yoktur. Arkadaş fonksiyonlar sınıfın private ve protected bölümlerinin korunmasını zayıflatır. Yani sınıfın veri yapısı değiştirildiğinde bu fonksiyonların da yeniden yazılması gerekir.

 

/*—–static6.cpp—–*/

#include <stdio.h>

 

class X {

        int a;

    public:

        X(int n)

        {

            a = n;

        }

        void Disp(void) const;

        friend void fonk(void);

};

 

void X::Disp(void) const

{

    printf(“%d\n”, a);

}

 

void fonk(void)

{

    X n(20);

 

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

}

 

void main(void)

{

    fonk();

}

/*————————-*/

 

Başka bir sınıfın bi üye fonksiyonu da bir sınıfın arkadaş fonksiyonu yapılabilir.

 

friend Y::sample(void);

 

Fonksiyonun parametre parantezi de fonksiyona dahildir. Yani genellikle arkadaş fonksiyonu parametresi arkadaş olunan sınıfına ilişkin bir gösterici ya da referans olur, fonksiyon içerisinde bu sınıfın her bölümüne erişilir.

 

class  X {

            private:

                        int a;

            public:

                        friend void fonk(const X *p);

};

 

void fonk(const X *p)

{

            printf(“%d\n”, p->a);

}

 

void main(void)

{

            X n(20);

 

            fonk(&n);

}

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

Tags: , , ,

Yorumlar

Yorum Yok

Yorumunuzu Ekleyin

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