Olası Çoğalt:
Is this key-oriented access-protection pattern a known idiom?Bir arkadaş sınıfının, başka bir sınıfa ait 1 fonksiyona yalnızca özel erişimini sağlayın.
Ben class A
ve class B
var. class B
'un özel işlevlerinden birine erişmek için class A
istiyorum; ama sadece bu, başka her şey değil. Mümkün mü?
örneğin çeşit: Sınıf B özel üye işlevlerini kullanmak istediğiniz sınıf A'da bir (veya birkaç) üyeleri, fonksiyonları, varsa
class A {
//stuff
};
class B {
int r; // A cant use this
MagicFriendKeyword A void func(); // A can use this
public:
...
};
Yinelenen [bilinen bir deyim bu anahtar yönelik erişim-koruma düzeni mi?] (Bkz http://stackoverflow.com/questions/3220009/is-this-key-oriented- erişim-koruma-desen-a-bilinen deyim). Bu soru, ne sorduğunuzu nasıl elde edebileceğinize dair bir örnek verir; aslında [bu soru] (http://stackoverflow.com/questions/3217390/clean-c-granular-friend-equivalent-answer-attorney-client-idiom) daha iyi bir kopya olabilir. –
Ayrıca bkz. [Bu soru] (http://stackoverflow.com/questions/3324898/can-we-increase-the-re-usability-of-this-key-oriented-access-protection-pattern) genellemek. Sanırım "passkey friend idiom" ismiyle bitti. Buradaki fikir, yalnızca belirli sınıfların bir "şifre" türü oluşturabilmesi ve fonksiyonun sadece belirli şifreleri, erişimi veya "arkadaşlığı" kabul etmesini kabul etmesidir. – GManNickG
Başvurulan tartışmaların kapsamına göre daha fazla - ve içeriğe daha iyi bağlı - çözümler vardır. Özellikle, bir arayüz olarak 'func' faktoring. Açık uçlu soruları kapatmayın, lütfen benzer eski tartışmalar açık uçlu ve tamamlanmış değilse. –