#if 0 exec gcc virtual.cpp -g -nostdlib -fno-exceptions -o $env(TMP)/virtual #exec g++ virtual.cpp -g -fno-exceptions -o $env(TMP)/virtual exec ddd $env(TMP)/virtual #exec $env(TMP)/virtual exit #endif int main(int argc,char**argv); #if 1 extern "C" int _start(); int _start() { main(0,0); asm(" hlt"); } namespace __cxxabiv1 { struct __si_class_type_info { virtual void a (); }; struct __class_type_info { virtual void a (); }; void __si_class_type_info::a() { } void __class_type_info::a() { } }; extern "C" { void __cxa_pure_virtual() { } } #endif struct TotoCapable { virtual void a()=0; virtual void b()=0; }; struct Toto : public TotoCapable { void a(); void b(); void c(); }; void Toto::a() { } void Toto::b() { } void Toto::c() { } int main(int argc,char**argv) { Toto toto; int s=sizeof(toto); void (Toto::*a)()=&Toto::a; void (Toto::*b)()=&Toto::b; void (Toto::*c)()=&Toto::c; toto.a(); return 0; }