#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);
}