cleanup2.c
来自「this is a gcc file, you can download it 」· C语言 代码 · 共 53 行
C
53 行
// Copyright (C) 1999 Free Software Foundation, Inc.// Contributed by Nathan Sidwell 21 Nov 1999 <nathan@acm.org>// make sure we don't call base dtors, if we failed to call the// base ctor due to exception throwing#include <stdio.h>static bool bad = false;static int thrower (){ printf ("in %s\n", __PRETTY_FUNCTION__); throw 0; return 0;}struct X{ X (int) throw (int); ~X () throw ();};X::X (int) throw (int) {printf ("in ctor X %s\n", __PRETTY_FUNCTION__); bad = true;}X::~X () throw () {printf ("in dtor X %s\n", __PRETTY_FUNCTION__); bad = true;}struct X1 {};struct Y : X{ Y() throw (int); ~Y() throw ();};Y::Y() throw (int) : X(thrower ()) // throws, so X::X is never called {printf ("in ctor Y%s\n", __PRETTY_FUNCTION__); bad = true;}Y::~Y() throw () {printf ("in dtor Y%s\n", __PRETTY_FUNCTION__); bad = true;}int main (){ try { Y y; } catch (...) { printf ("caught\n"); } return bad;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?