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