📄 vtbl2.c
字号:
// Copyright (C) 2000 Free Software Foundation, Inc.// Contributed by Nathan Sidwell 8 Feb 2000 <nathan@acm.org>// vtable construction reorganisation broke this// execution test#include <stdio.h>static int fail = 0;void bad (char const *name){ printf ("Bad %s\n", name); fail = 1;}void ok (char const *name){ printf ("Ok %s\n", name);}struct Core{ virtual ~Core (); virtual void Wibble () {bad (__PRETTY_FUNCTION__);} virtual void Wobble () {bad (__PRETTY_FUNCTION__);} virtual void Bogus () {bad (__PRETTY_FUNCTION__);}};struct Side{ virtual ~Side (); virtual void Arfle () {bad (__PRETTY_FUNCTION__);} virtual void Barfle () {bad (__PRETTY_FUNCTION__);} virtual void Gloop () {bad (__PRETTY_FUNCTION__);} virtual void Glorp () {bad (__PRETTY_FUNCTION__);} virtual void Glump () {bad (__PRETTY_FUNCTION__);} virtual void Bogus () {bad (__PRETTY_FUNCTION__);} };struct Base : Core{ virtual ~Base (); virtual void Bink () {bad (__PRETTY_FUNCTION__);} virtual void Bonk () {bad (__PRETTY_FUNCTION__);} virtual void Bogus () {bad (__PRETTY_FUNCTION__);} };struct Multi : Base, Side{ virtual ~Multi (); virtual void Stomped () {ok (__PRETTY_FUNCTION__);} virtual void Bunk () {bad (__PRETTY_FUNCTION__);} virtual void Bogus () {bad (__PRETTY_FUNCTION__);} };struct Trail : Multi{ virtual ~Trail ();};Core::~Core () {}Side::~Side () {}Base::~Base () {}Multi::~Multi () {}Trail::~Trail () {}void foo (Multi *ptr){ ptr->Stomped ();}int main (){ Multi m; Trail t; foo (&m); foo (&t); return fail != 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -