, .
-, dynamic_cast , - .
-, dynamic_cast reinterpret_cast C-style (, , ), :
, .
, "" --, .
-, , , , A::f, , , .
, , (D C), , . :
void f( C& c ) { printf("f(C& c): %c\n",c.c); }
void g( D& d ) { printf("g(D& d): %c\n",d.d); }
:
f (C & c): c
f (C & c): d
" ? D C!". , - . this, +0. C ( ):
struct C{
C () : c('c') {}
int i;
const char c;
};
: output:
f (C & c): c
f (C & c): ╠
, . C::c +4 (+0 + sizeof int), printf . D , printf . , - undefined .
, : , .:)