Duplicar posible:
clean C++ granular friend equivalent? (Answer: Attorney-Client Idiom)En C++, dada una función de miembro en la clase A, ¿podemos restringir su acceso a solo la clase B, sin darle a B el acceso de amigo completo a A?
He querido esto un par de veces y no han sido capaces de llegar a una buena manera de hacerlo.
Digamos que tengo una función miembro en la clase A. Deseo poder llamar a esa función desde una clase B no relacionada, pero no ser generalmente invocable. Podrías decir: "Claro, haz que la función sea privada y declara que B es amigo de A." Eso es lo que he estado haciendo, pero parece un poco exagerado. Realmente no quiero darle acceso a B a todo en A, solo una función.
En resumen: A::func()
solo se puede llamar por la clase B, pero B no se ha declarado amigo de A. ¿Posible?
Posible duplicado: http://stackoverflow.com/questions/3217390/clean-c-granular-friend-equivalent-answer-attorney-client-idiom –
Mi pregunta es de hecho una duplicado de ese. Aparentemente mi búsqueda-foo es débil. –