Why the ppp1 is NULL and no compiler's warning nor error?

Code:
class Test2
{
   static void Func1(int* a, int b)
   {
   }

   static void Func1(void* a, int b)
   {
   }
};

class Test
{
public:
   static void Func1(int* a, int b)
   {
   }

   static void Func1(void* a, int b)
   {
   }
};

void* Do2()
{
   //return (void(*)(int*,int)) &Test2::Func1;
   return &Test2::Func1;
}

void* Do()
{
   return (void(*)(int*,int)) &Test::Func1;
}

int _tmain(int argc, _TCHAR* argv[])
{
   void* ppp1 = Do();

   return 0;
}

Last edited by shabbir; 2May2007 at 20:56.. Reason: Code block