From 3ae20ae6213e853d42c6b564c61b1eb76a01335c Mon Sep 17 00:00:00 2001 From: Light-City <455954986@qq.com> Date: Mon, 9 Dec 2019 11:14:25 +0800 Subject: [PATCH] update --- README.md | 3 +- morden_C++_30/.CMakeLists.txt.un~ | Bin 0 -> 861 bytes morden_C++_30/CMakeLists.txt | 6 ++-- morden_C++_30/CMakeLists.txt~ | 17 ++++++++++++ .../RAII/{heap_stack.cpp => heap.cpp} | 0 morden_C++_30/RAII/stack.cpp | 26 ++++++++++++++++++ 6 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 morden_C++_30/.CMakeLists.txt.un~ create mode 100644 morden_C++_30/CMakeLists.txt~ rename morden_C++_30/RAII/{heap_stack.cpp => heap.cpp} (100%) create mode 100644 morden_C++_30/RAII/stack.cpp diff --git a/README.md b/README.md index 9c55347..fd1cf18 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,8 @@ for(decl:col) { #### 3.1 [极客时间《现代C++实战30讲》](https://time.geekbang.org/channel/home) - [堆、栈、RAII:C++里该如何管理资源?](./morden_C++_30) - - [堆与栈](./morden_C++_30/RAII/heap_stack.cpp) + - [堆](./morden_C++_30/RAII/heap.cpp) + - [栈](./morden_C++_30/RAII/stack.cpp) - [RAII](./morden_C++_30/RAII/RAII.cpp) ### 4.代码运行 diff --git a/morden_C++_30/.CMakeLists.txt.un~ b/morden_C++_30/.CMakeLists.txt.un~ new file mode 100644 index 0000000000000000000000000000000000000000..30ba01b3152a8d025642af325126c58c7c738a58 GIT binary patch literal 861 zcmWH`%$*;a=aT=Ffk}X~F6pGlO0(|HeeE*(F1s`Zzk2Q~a#Qru*Y*s$oVtO5fq@f< zkpUx+1HvExV}tpzZ+Aanfr!LkfXJheASqUu$bTS!8v_#@rHKy#ct`@Z@E~amgRz0p zaUU8TUnPKoEI;kB^plt{=p&fo_@|gp)RiRE}lUO`WgAT zsrosY=@}*ZNyR1lnR&@Mr75YJKppA`9X_6Z-dL6AWF~=>f`GTO!qdLpPbaT>+1~T4 zbKlb?Tb@m8f3kacXp6;FeWLIB$aDuYf*7s^Y?QeQE6_g}3p)QF}$t+4uF3B&-OfA+>smAa@Ey#XnG`n|AhT5%HoUfpl jl9K}@DuHfAaSO~9K5#pgb29U?v04ZVfLcw{#^ +class Obj { +public: + Obj() { puts("Obj()"); } + ~Obj() { puts("~Obj()"); } +}; +void foo(int n) +{ + Obj obj; + if (n == 42) + throw "life, the universe and everything"; +} +// 不管是否发生了异常,obj 的析构函数都会得到执行。 +int main() +{ + try { + foo(41); + foo(42); + } + catch (const char* s) { + puts(s); + } +}