vtbl2.c

来自「this is a gcc file, you can download it 」· C语言 代码 · 共 77 行

C
77
字号
// 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 + =
减小字号Ctrl + -
显示快捷键?