¿El operador de sobrecarga << funciona dentro de la clase?

Quiero decir, estaba tratando de sobrecargar el operador << dentro de la clase

Me gusta est

 class A {
      public:
           ostream &operator<<(ostream &os);// which doesnt work

      private:
           friend ostream &operator<<(ostream &os, const A& a); //Works
           int i;

 };

  Definition
          ostream &operator<<(ostream &os, const A& a) {
              os<<a.i;
              return os;
          }

¿por qué no puedo sobrecargar el operador dentro de la clase específica de la clase? ¿O me estoy perdiendo algo? o ¿Soy estúpido incluso para pensar de esa manera? Por favor avise

Respuestas a la pregunta(6)

Su respuesta a la pregunta