Eso no es cierto. Un operador o una función se hacen
friend[/i] cuando:
- El operador o función debe ser externo a la clase por la cuestión que sea.
- El operador o función, además, necesita acceder a los datos privados de la clase.
Y no por el sencillo hecho de ser "un operador cuyo operando más a la izquierda no es un miembro de la clase". Un operador se podría hacer externo a la clase, "cuyo operando más a la izquierda
ES un miembro de la clase", sencillamente para permitir conversiones implícitas.
A ver si aprendemos a leer. He dicho que si el operador mas a la izquierda no es un objeto de la clase (y evidentemente el operador tiene que acceder a los miembros privados, como el mismo está intentando hacer (no hace falta tener muchas luces para darse cuenta)) entonces tiene que declararlo como
friend y un operador miembro "puro", no
friend, exige que su operando mas a la izquierda sea un objeto de la clase. Y esto, lo mires como lo mires, es cierto siempre. Otra cosa es que haya más casos en los que un operador/funcion se pueda declarar
friend, o que pueda aceptar como primer operando un objeto de la clase, pero lo que he dicho es completamente cierto.
Primero lee, luego entiende y cuando hayas hecho todo lo anterior reflexiona antes de opinar sobre lo que ha dicho otra persona, sobre todo si pretendes desacreditarla, no vaya a ser que acabes pillándote los dedos.
¡Saludos!