You have to make the functions static to be able to take their addresses. This is because of the way object orientation works; if an object doesn't exist, then its functions don't exist either, so to make the functions exist whether or not there is an object in existence then the functions have to be static.
Code:
class a
{

  public:
  static void func_1 ();
  static void func_2();
  void (*arrfptr[2])();
  a();
};

void a::func_1()
{
  std::cout<<"\n func_1\n";
}
void a::func_2()
{
  std::cout<<"\n func_2\n";
}
a::a()
{
	arrfptr[0]=&func_1;
	arrfptr[1]=&func_2;
}

class b
{
  public:
  void func_b();
};

void b::func_b()
{
   a obj;
   (obj.arrfptr[0])();
   (obj.arrfptr[1])();
}