#include <iostream>
using namespace std;
struct Parent1
{
virtual void f( )
{
cout << "\n Parent1::f" ;
}
} ;
struct Parent2
{
virtual void g( )
{
cout << "\n Parent2::g" ;
}
virtual void z( )
{
cout << "\n Parent2::z" ;
}
} ;
struct Child : public Parent1, public Parent2
{
virtual void h( )
{
cout << "\n Child::h" ;
}
} ;
int main( )
{
Child obj;
Parent2 * p2 = static_cast < Parent2* > ( static_cast < Parent1* > ( & obj) ) ;
p2- > z( ) ;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFBhcmVudDEKewogICAgdmlydHVhbCB2b2lkIGYoKQogICAgewogICAgICAgIGNvdXQgPDwgIlxuUGFyZW50MTo6ZiI7CiAgICB9Cn07CnN0cnVjdCBQYXJlbnQyCnsKICAgIHZpcnR1YWwgdm9pZCBnKCkKICAgIHsKICAgICAgICBjb3V0IDw8ICJcblBhcmVudDI6OmciOwogICAgfQogICAgdmlydHVhbCB2b2lkIHooKQogICAgewogICAgICAgIGNvdXQgPDwgIlxuUGFyZW50Mjo6eiI7CiAgICB9Cn07CnN0cnVjdCBDaGlsZCA6IHB1YmxpYyBQYXJlbnQxLCBwdWJsaWMgUGFyZW50Mgp7CiAgICB2aXJ0dWFsIHZvaWQgaCgpCiAgICB7CiAgICAgICAgY291dCA8PCAiXG5DaGlsZDo6aCI7CiAgICB9Cn07CgppbnQgbWFpbigpCnsKICAgIENoaWxkIG9iajsKICAgIFBhcmVudDIgKiBwMiA9IHN0YXRpY19jYXN0PFBhcmVudDIqPihzdGF0aWNfY2FzdDxQYXJlbnQxKj4oJm9iaikpOwogICAgcDItPnooKTsKICAgIHJldHVybiAwOwp9