Как работает reinterpret_cast?
struct foo {
int a = 1;
};
struct bar {
int b = 2;
};
struct baz : foo, bar {
int c = 3;
};
int main() {
baz oBaz;
auto s_cast = static_cast<foo*>(&oBaz);
auto r_cast = reinterpret_cast<bar*>(&oBaz);
std::cout << s_cast->a << std::endl;
std::cout << r_cast->b << std::endl;
}
Как в данном случае работает reinterpret_cast? Почему на консоли я вижу 1, 1?
Источник: Stack Overflow на русском