#include <iostream>
#include <string.h>
using namespace std;
class First
{
public:
First():text("Hi im first!!!"){;}
void virtual WhoIsWho(){cout<<"its must be first "<<text<<endl;}
protected:
char * text;
};
class Second:public First
{
public:
Second(){text = "Hi im second";}
void WhoIsWho(){cout<<"its must be second "<<text<<endl;}
};
int main()
{
Second A;
First B, *C(&A);
B=C[0];
C->WhoIsWho();
B.WhoIsWho();
memcpy(&B,C,sizeof(B));
B.WhoIsWho();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNsYXNzIEZpcnN0CnsKICAgIHB1YmxpYzoKCUZpcnN0KCk6dGV4dCgiSGkgaW0gZmlyc3QhISEiKXs7fQoJdm9pZCB2aXJ0dWFsIFdob0lzV2hvKCl7Y291dDw8Iml0cyBtdXN0IGJlIGZpcnN0ICI8PHRleHQ8PGVuZGw7fQoJcHJvdGVjdGVkOgoJY2hhciAqIHRleHQ7Cn07CmNsYXNzIFNlY29uZDpwdWJsaWMgRmlyc3QKewoJcHVibGljOgoJU2Vjb25kKCl7dGV4dCA9ICJIaSBpbSBzZWNvbmQiO30KCXZvaWQgV2hvSXNXaG8oKXtjb3V0PDwiaXRzIG11c3QgYmUgc2Vjb25kICI8PHRleHQ8PGVuZGw7fQp9OwoKaW50IG1haW4oKQp7CglTZWNvbmQgQTsKCUZpcnN0IEIsICpDKCZBKTsKCUI9Q1swXTsKCUMtPldob0lzV2hvKCk7CglCLldob0lzV2hvKCk7CgltZW1jcHkoJkIsQyxzaXplb2YoQikpOwoJQi5XaG9Jc1dobygpOwoJcmV0dXJuIDA7Cn0=