#include <iostream>
using namespace std;
class base{
public:
int b;
void Print_b(){
cout<<b<<endl;
}
};
class derived: public base{
public:
int d;
void Print_d(){
cout<<d<<endl;
}
};
int main() {
// your code goes here
base b1;
b1.b = 1;
b1.Print_b();
derived d1;
d1.d = 2;
d1.Print_b();
d1.Print_d();
cout<<"via pointers\n";
derived * bptr = &d1;
bptr->Print_b();
bptr = & b1;
bptr->Print_b();
bptr->Print_d();
base * dptr = &d1;
dptr->Print_b();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgYmFzZXsKCXB1YmxpYzoKCWludCBiOwoJdm9pZCBQcmludF9iKCl7CgkJY291dDw8Yjw8ZW5kbDsKCX0KfTsKCmNsYXNzIGRlcml2ZWQ6IHB1YmxpYyBiYXNlewoJcHVibGljOgoJaW50IGQ7Cgl2b2lkIFByaW50X2QoKXsKCQljb3V0PDxkPDxlbmRsOwoJfQp9OwppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCWJhc2UgYjE7CgliMS5iID0gMTsKCWIxLlByaW50X2IoKTsKCQoJZGVyaXZlZCBkMTsKCWQxLmQgPSAyOwoJZDEuUHJpbnRfYigpOwoJCglkMS5QcmludF9kKCk7Cgljb3V0PDwidmlhIHBvaW50ZXJzXG4iOwoJCglkZXJpdmVkICogYnB0ciA9ICZkMTsKCWJwdHItPlByaW50X2IoKTsKCQoJYnB0ciA9ICYgYjE7CglicHRyLT5QcmludF9iKCk7CglicHRyLT5QcmludF9kKCk7CgkKCWJhc2UgKiBkcHRyID0gJmQxOwoJZHB0ci0+UHJpbnRfYigpOwoJCgkKCXJldHVybiAwOwp9CgoKCgoKCgo=