类中函数指针作函数参数的有关问题

类中函数指针作函数参数的问题
//代码

class   X{      
    typedef   void(X::*func)(int);      
           
    private:
            int   data;        
           
    public:      
            //构造函数        
            X(){data   =   100;   };                
           
            //用函数指针作参数的函数  
            void   test(func   pt_func   ,   int   num   )        
                    {(this-> *pt_func)(   num   );   };      
           
            //函数指针所指的函数  
            void   out_put(   int   num)  
                    {   cout < < "out_put   X.data   " < <num < <endl;   };      
           
            //调用有函数指针参数的函数  
            void   call()        
                    {test(   out_put,   data   );   };      
                   
};      

//主函数  
int   main(int   argc,   char   *argv[])
{
   
    X   x;  
    x.call();
         
    system( "PAUSE ");
    return   0;
}

//编译错误:
no   matching   function   for   call   to   `X::test( <unknown   type> ,     int&) '  

//为什么是unknown   type?谢谢

------解决方案--------------------
test( &out_put, data );
test( &X::out_put, data );
------解决方案--------------------
class X
{
public:
....................
void call()
{test( &X::out_put, data ); }

};