Arkadaş İşlevi ve Arkadaş Sınıfı Arasındaki Fark

Yazar: Laura McKinney
Yaratılış Tarihi: 1 Nisan 2021
Güncelleme Tarihi: 13 Mayıs Ayı 2024
Anonim
A, B ve C Sınıfı Arasındaki Farklar Neler? Amatör Telsizcilikte Lisanslar || 0️⃣ 1️⃣ 8️⃣
Video: A, B ve C Sınıfı Arasındaki Farklar Neler? Amatör Telsizcilikte Lisanslar || 0️⃣ 1️⃣ 8️⃣

İçerik


Friend işlevi ve friend class, friend anahtar sözcüğünü kullanarak bir sınıfın özel üyelerine erişmek için kullanılan tekniklerdir. Friend işlevi ve friend sınıfı arasındaki ortak fark, friend işlevi kullanıldığında özel sınıf üyelerine erişilebilmesidir, ancak friend sınıfında, sınıfın özel üyelerine değil, yalnızca arkadaş sınıfının adlarına erişilir.

arkadaş özelliği işlev veya sınıf tarafından kullanıldığında, nesne yönelimli çerçeve üzerinde zayıfladığı için olumsuz etki yaratabilir. kapsülleme hangisine karşı nesne odaklı paradigması. Arkadaşlık özelliğini akıllıca kullanmanızın nedeni budur, aksi halde mola veri gizleme Kodun

Bu arkadaşın özelliği de degiştirilebilen ve ne geçişli. X, Y'nin bir arkadaşıdır, Y'nin de X'in bir arkadaşı olduğu sonucuna varmaz. X'in Y'nin bir arkadaşı olduğu ve Y'nin Z'nin bir arkadaşı olduğu, X'in Z'nin bir arkadaşı olduğu anlamına gelmez.


    1. Karşılaştırma Tablosu
    2. Tanım
    3. Anahtar Farklılıklar
    4. Sonuç

Karşılaştırma Tablosu

Karşılaştırma için temelArkadaş fonksiyonuArkadaş sınıfı
TemelBir arkadaş anahtar kelimesiyle, bir sınıfın özel üyelerine üye olmayan bir işlev erişimi vermek için kullanılan bir işlevdir.Bir başka sınıfın özel üyelerine erişmek için bir friend anahtar kelimesiyle kullanılan bir sınıftır.
Forward bildirimiKullanılmalı.Zorunlu değil.
kullanımOperatörün aşırı yüklenmesi durumunda bazı durumlarda arkadaş fonksiyonu kullanılabilir.Bir arkadaş sınıfı, başka bir sınıfın tepesinde bir sınıf oluşturulduğunda kullanılabilir.

Arkadaş Fonksiyonunun Tanımı

arkadaş işlevi üye olmayan fonksiyonun erişim kazanmasına izin vererek bir sınıfın özel ve korunan üyelerine erişmek için kullanılır. Bu tür bir işlevde, bildirim sırasındaki işlev adından önce bir friend anahtar sözcüğü kullanılır. Arkadaş işlevine uygulanan bazı kısıtlayıcı koşullar vardır. İlk şart, arkadaş işlevinin bir çocuk sınıfı tarafından miras alınmamasıdır. İkinci koşul, depolama sınıfı tanımlayıcısının arkadaş işlevinde bulunmayabilmesi, yani statik ve harici olarak bildirilemeyeceği anlamına gelir.


Friend işlevi, sınıfın çağrıcı bir nesnesiyle çağrılmaz. Friend işlevine örnekler: genel bir işlev, bir sınıfın üye işlevi, işlev şablonu bir arkadaş işlevi olabilir. Bunu bir örnek yardımıyla anlayalım.

#Dahil etmek namespace std kullanarak; birinci sınıf {int veri; public: first (int i): data (i) {} arkadaş boşluğu gösterimi (önce const & a); }; geçersiz ekran (önce const & a) {cout << "data =" <ad alanı std kullanarak; birinci sınıf {// bir arkadaş sınıfı bildir public: First (): a (0) {} void () {cout << "Sonuç" << a << endl; } özel: int a; }; İkinci sınıf {public: void change (First & yclass, int x) {yclass.a = x; }}; int main () İlk nesne1; İkinci obj2; obj1 (.); obj2.change (obj1, 5); obj1 (.); // Çıktı Sonuç 0, Sonuç 5

  1. Arkadaş işlevi, bir sınıfın özel ve korumalı üyelerine erişebilen bir işlevdir. Buna karşılık, bir arkadaş sınıfı, bir sınıfın özel üyelerine erişmeye yardımcı olan bir sınıftır.
  2. Prototipini sınıf içerisine dahil ederek bir arkadaş işlevi açıklanır, arkadaş anahtar kelimesiyle bunu önler. Benzer şekilde, bir arkadaş sınıfı, anahtar kelime arkadaşı kullanılarak da tanımlanır.
  3. İleriye yönelik beyan, arkadaşlık işlevine karşı olduğu gibi kullanılır, arkadaşlık sınıfında kullanılması gerekli değildir.

Sonuç

Bir fonksiyonun iki veya daha fazla bağımsız sınıfa, iç üyelere erişmesi gerektiğinde bir arkadaş fonksiyonu gereklidir. Öte yandan, bir sınıfın başka bir sınıfın üyelerine erişmesi gerektiğinde bir arkadaş sınıfına ihtiyaç vardır. Bir çoklu üye işlevinin bu işlevin bir arkadaşı olması gerektiğinde, bu durumda, arkadaş sınıfını kullanmak daha iyidir.