Un puntatore a funzione di una funzione membro della classe che è dichiarato virtuale è valido?Un puntatore a una funzione virtuale viene ancora richiamato virtualmente?
class A {
public:
virtual void function(int param){ ... };
}
class B : public A {
virtual void function(int param){ ... };
}
//impl :
B b;
A* a = (A*)&b;
typedef void (A::*FP)(int param);
FP funcPtr = &A::function;
(a->*(funcPtr))(1234);
Sarà B::function
essere chiamato?
Hai il codice. Questa è una di quelle domande a cui potresti aver risposto da solo eseguendo il codice. –
perché è più veloce chiedersi qui che accendere IDE, creare progetti, codice, compilare, eseguire il debug, ecc ... e darebbe un vantaggio ad altri, e questa domanda/codice non andrà persa. – uray
@ Martin: E se il comportamento fosse indefinito? –