Arkadaş İşlevi ve Arkadaş Sınıfı Arasındaki Fark
İç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.
-
- Karşılaştırma Tablosu
- Tanım
- Anahtar Farklılıklar
- Sonuç
Karşılaştırma Tablosu
Karşılaştırma için temel | Arkadaş fonksiyonu | Arkadaş sınıfı |
---|---|---|
Temel | Bir 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 bildirimi | Kullanılmalı. | Zorunlu değil. |
kullanım | Operatö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 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.
Sonuç