Assuming you what to literally store pointers of pointer-to-member type in your array, the answer is: it depends. It depends on whether there is a hierarchical relationship between your classes.
If your classes are completely unrelated, then you can only reinterpret_cast your pointers to some common type, like void (SomeArbitraryClass::*)() and then reinterpret_cast them back to their original types when performing the call. This is basically a "no" answer, since this is little more than a rather ugly hack.
(Alternatively, as Dietmar Kühl suggested, you can use type-erasure techniques, like the one offered by std::function<> in C++11 to store callable objects in your array. Such objects will not be pointers-to-member anymore though.)
But if your classes are members of the same class hierarchy, then you can rely on the fact that in C++ class member pointers are contravariant. This means that pointer to member of base class can be implicitly converted to pointer to member of derived class. And even though they don't convert implicitly in the reverse direction, the language supports this conversion through static_cast. So, you have to give the array elements the type R (CommonBaseClass::*)(Args) and use static_cast to that type when filling in the array. In this case you don't have to convert these pointers back to original type when performing the call - the language will do everything correctly by itself (assuming you supply objects of correct type at the moment of pointer dereference).
std::function<Ret(ArgsWithoutObjectType)>and usestd::bindto bind objects to them when inserting them.static_castconversions in that direction specifically for that reason.