3.cc
来自「俄罗斯高人Mamaich的Pocket gcc编译器(运行在PocketPC上)」· CC 代码 · 共 41 行
CC
41 行
struct A{ virtual void foo(); virtual void bar();};void A::foo() { } // keepvoid A::bar() { } // losestruct B : public A{ virtual void foo();};void B::foo() { } // keepvoid _start() __asm__("_start"); // keepA a; // keepB b;A *getme() { return &a; } // keepvoid _start(){ getme()->foo();#ifdef __GNUC__#if (__GNUC__ == 2 && __GNUC_MINOR__ < 96)// gcc-2.95.2 gets this test wrong, and loses B::foo().// Cheat. After all, we aren't trying to test the compiler here. b.foo();#endif#endif}// In addition, keep A's virtual table.// We'll wind up keeping `b' and thus B's virtual table because// `a' and `b' are both referenced from the constructor function.extern "C" void __main() { }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?