Will a function pointer to some class member function that is declared virtual be valid?

class A 



class B : public A 



//impl :

B b

A* a = (A*)&b

typedef void (A::*FP)(int param)

FP funcPtr = &A::function

(a->*(funcPtr))(1234)

Will B::function be known as?

Yes. Valid code to check on codepad or ideone :

class A 



class B : public A 



typedef void (A::*FP)(int param)

int primary(void)



Yes. Additionally, it works together with virtual inheritance.

The function is going to be known as, while you just attempt to invoke inherited function.

The very best test for your factor would be to result in the techniques within the class A a pure virtual method. In the two cases (without or with pure virtual techniques), B::function is going to be known as.