#include <cstring>
#include <iostream>
struct base_t {
unsigned a;
};
struct derived_t : base_t {
unsigned a;
};
void print_derived_info(const derived_t& d) {
std::cout << "base_t::a = " << ((const base_t&)d).a << ", "
<< "derived_t::a = " << d.a << std::endl;
}
int main() {
derived_t d;
memset(&d, 0u, sizeof(d));
print_derived_info(d);
d.a = 3;
print_derived_info(d);
d.base_t::a = 4;
print_derived_info(d);
}
I2luY2x1ZGUgPGNzdHJpbmc+CgojaW5jbHVkZSA8aW9zdHJlYW0+CgpzdHJ1Y3QgYmFzZV90IHsKICAgIHVuc2lnbmVkIGE7Cn07CgpzdHJ1Y3QgZGVyaXZlZF90IDogYmFzZV90IHsKICAgIHVuc2lnbmVkIGE7Cn07Cgp2b2lkIHByaW50X2Rlcml2ZWRfaW5mbyhjb25zdCBkZXJpdmVkX3QmIGQpIHsKICAgIHN0ZDo6Y291dCA8PCAiYmFzZV90OjphID0gIiA8PCAoKGNvbnN0IGJhc2VfdCYpZCkuYSA8PCAiLCAiCiAgICAgICAgICAgICAgPDwgImRlcml2ZWRfdDo6YSA9ICIgPDwgZC5hIDw8IHN0ZDo6ZW5kbDsKfQoKaW50IG1haW4oKSB7CiAgICBkZXJpdmVkX3QgZDsKICAgIAogICAgbWVtc2V0KCZkLCAwdSwgc2l6ZW9mKGQpKTsKICAgIHByaW50X2Rlcml2ZWRfaW5mbyhkKTsKCiAgICBkLmEgPSAzOwogICAgcHJpbnRfZGVyaXZlZF9pbmZvKGQpOwoKICAgIGQuYmFzZV90OjphID0gNDsKICAgIHByaW50X2Rlcml2ZWRfaW5mbyhkKTsKfQ==