📄 3.cc
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -