#include <iostream>
using namespace std;
class A {
public :
virtual int Afunc( ) { return 2 ; } ;
int a;
} ;
class B {
public :
virtual int Bfunc( )
{
cout << "this : " << this << endl;
return 3 ;
}
int b;
} ;
// C is a single inheritance class, derives only from A
class C: public A {
public :
int Cfunc( ) { return 4 ; } ;
int c;
} ;
// D uses multiple inheritance
class D: public A, public B {
public :
virtual int Dfunc( )
{
cout << "this : " << this << endl;
return 5 ;
}
int d;
} ;
int main( ) {
// your code goes here
typedef int ( D:: * fptr) ( void ) ;
fptr bfunc;
fptr dfunc;
bfunc= & D:: Bfunc ;
dfunc= & D:: Dfunc ;
cout << ( reinterpret_cast < unsigned long long > ( bfunc) & 0xffffffffffffffff ) << endl;
//cout<<(((void *)dfunc)&(0xffff0000))<<endl;
//(void*)(bfunc);
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQSB7CiBwdWJsaWM6CiAgICAgICB2aXJ0dWFsIGludCBBZnVuYygpIHsgcmV0dXJuIDI7IH07CiAgICAgICBpbnQgYTsKfTsKCmNsYXNzIEIgewogcHVibGljOiAKICAgICAgdmlydHVhbCBpbnQgQmZ1bmMoKSAKICAgICAgeyAKICAgICAgCWNvdXQ8PCJ0aGlzIDogIjw8dGhpczw8ZW5kbDsKICAgICAgCXJldHVybiAzOyAKICAgICAgfQogICAgICBpbnQgYjsKfTsKCi8vIEMgaXMgYSBzaW5nbGUgaW5oZXJpdGFuY2UgY2xhc3MsIGRlcml2ZXMgb25seSBmcm9tIEEKY2xhc3MgQzogcHVibGljIEEgewogcHVibGljOiAKICAgICBpbnQgQ2Z1bmMoKSB7IHJldHVybiA0OyB9OwogICAgIGludCBjOwp9OwoKLy8gRCB1c2VzIG11bHRpcGxlIGluaGVyaXRhbmNlCmNsYXNzIEQ6IHB1YmxpYyBBLCBwdWJsaWMgQiB7CiBwdWJsaWM6IAogICAgdmlydHVhbCBpbnQgRGZ1bmMoKSAKICAgIHsgCiAgICAJY291dDw8InRoaXMgOiAiPDx0aGlzPDxlbmRsOwogICAgCXJldHVybiA1OyAKICAgIH0KICAgIGludCBkOwp9OwoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkKCXR5cGVkZWYgaW50IChEOjoqZnB0cikodm9pZCk7CgkKCWZwdHIgYmZ1bmM7CglmcHRyIGRmdW5jOwoJCgliZnVuYz0mRDo6QmZ1bmM7CglkZnVuYz0mRDo6RGZ1bmM7CgkKCWNvdXQ8PChyZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZyA+KGJmdW5jKSYweGZmZmZmZmZmZmZmZmZmZmYpPDxlbmRsOwoJLy9jb3V0PDwoKCh2b2lkICopZGZ1bmMpJigweGZmZmYwMDAwKSk8PGVuZGw7CgkKCS8vKHZvaWQqKShiZnVuYyk7CglyZXR1cm4gMDsKfQ==