typedef'd type no visible como tipo de retorno de una función miembro

Este programa no se compila (usando gcc-4.5). El mensaje de error dice:

error: "myType_t" no nombra un tipo

  1 class abc{
  2 //typedef int myType_t;
  3 
  4   public:
  5 typedef int myType_t;
  6 
  7     abc();
  8     myType_t fun1();
  9 };
 10 
 11 myType_t abc::fun1()
 12 {
 13   return 0;
 14 }
 15 
 16 int main()
 17 {
 18   abc abc1;
 19   return 0;
 20 }

Ahora declarandotypedef int myType_t; fuera de la claseabc hace esta compilación. Mi confusión es, ¿cuál es el problema si el tipo de retorno de una función miembro está tipificado dentro de la clase.

Respuestas a la pregunta(3)

Su respuesta a la pregunta