Duplicar posibles:
Is this key-oriented access-protection pattern a known idiom?¿Hacer una clase de amigo solo tiene acceso especial a 1 función de otra clase?
tengo class A
y class B
. Quiero class A
para acceder a una de las funciones privadas de class B
; pero solo eso, no todo lo demás. ¿Es eso posible?
Una especie de ejemplo:
class A {
//stuff
};
class B {
int r; // A cant use this
MagicFriendKeyword A void func(); // A can use this
public:
...
};
duplicados de [¿Es este patrón orientado a la clave de protección de acceso un lenguaje conocido?] (Http://stackoverflow.com/questions/3220009/is-this-key-oriented- access-protection-pattern-a-known-idiom). Esa pregunta brinda un ejemplo de cómo puedes lograr lo que estás pidiendo; en realidad [esta pregunta] (http://stackoverflow.com/questions/3217390/clean-c-granular-friend-equivalent-answer-attorney-client-idiom) podría ser un mejor duplicado. –
También vea [esta pregunta] (http://stackoverflow.com/questions/3324898/can-we-increase-the-re-usability-of-this-key-oriented-access-protection-pattern), que busca generalízalo. Creo que terminamos con el nombre "idiomático de amigo pasivo". La idea es que solo ciertas clases pueden crear un tipo de "contraseña", y la función solo acepta ciertas claves de paso, otorgando acceso o "amistad". – GManNickG
Hay más soluciones, y de acuerdo con el contexto, mejor que las mencionadas en las discusiones. En particular, factorizar 'func' como interfaz. No cierre preguntas abiertas, por favor, a menos que la discusión anterior similar sea tan abierta y completa. –