// Example program
#include <iostream>
#include <string>
class B{
public:
virtual int prva()=0;
virtual int druga(int)=0;
};
class D: public B{
public:
virtual int prva(){return 42;}
virtual int druga(int x){return prva()+x;}
};
typedef int (B::*PTRFUN1)();
typedef int (B::*PTRFUN2)(int x);
void function (B* var){
PTRFUN1 fun1 = &B::prva;
PTRFUN2 fun2 = &B::druga;
printf("Prva:%d\n", (var->*fun1)());
printf("Druga:%d\n", (var->*fun2)(2));
}
int main(){
B *pb = new D();
function(pb);
}