operator - Declaración de amigo en C++: diferencia entre público y privado
protected c++ (2)
Como la friend class B
sintaxis friend class B
no declara un miembro de la clase A
, entonces no importa dónde la escriba, la clase B
es amiga de la clase A
Además, si escribe la friend class B
en la sección protected
de A
, entonces NO significa que B
puede acceder solo a miembros protected
y public
de A
Recuerde siempre que una vez que B
convierte en amigo de A
, puede acceder a cualquier miembro de A
, sin importar en qué sección escriba la friend class B
Alguien me dijo que hay una diferencia entre declarar una clase de amigo en las áreas públicas o privadas de la clase, pero parece que no puedo encontrar nada sobre esto en línea, y no estoy seguro de que supieran de qué estaban hablando.
Me refiero a la diferencia entre:
class A
{
public:
friend class B;
};
y
class A
{
private: //or nothing as the default is private
friend class B;
};
¿Hay una diferencia?
No, no hay diferencia, solo dices que la clase B es amiga de la clase A y ahora puede acceder a sus miembros privados y protegidos, eso es todo.