class X {}; class Y {}; int main(int argc, char** argv) { int i = 3; X x; Y y; X* xp; Y* yp; X& xr = x; Y& yr = reinterpret_cast<Y&>(x); return (0); }