Bazı tasarımlarda az sayıda fonksiyon sınıfın private bölümü üzerinde yoğun işlemler yapıyor olabilir. Bu az sayıda fonksiyon için arabirim public üye fonksiyonlar yazmak etkin görünmeyebilir. İşte bu durumlarda arkadaş fonksiyonlarla erişim kuralı bozulabilir. Tabii arkadaş fonksiyonların aşırı ölçüde kullanılması korunmayı azaltarak private bölgeyi anlamasız hale getirebilir. Friend fonksiyon bildirimi global fonksiyonlar için prototip yerine de geçer.
Bir sınıf bütün olarak arkadaş sınıf olarak bildirilebilir.
Â
class X {
                       int a;
           public:
                       X(int n) { a = n];
                       friend class Y;
};
Â
Bu durumda sınıfın bütün elemanları arkadaÅŸ kabul edilir.Yani o sınıfın tüm üye fonksiyonları içerisinde arkadaÅŸ olunan sınıfa iliÅŸkin nesne tanımlanırsa o nesne yoluyla sınıfın her tarafına eriÅŸilebilir.Â
Â
class Node {
                       int data;
                       Node *next;
                       friend class LList;
};
Â
class LList {
                       Node *head;
           public:
                       void Add(int d);
                       void Delete(void);
};
Yorumlar
Yorum Yok
Yorumunuzu Ekleyin
Yorum eklemek için giris yapmalısınız.