mirror of
https://github.com/Light-City/CPlusPlusThings.git
synced 2026-02-12 23:15:23 +08:00
support bazel complie this project and format code.
This commit is contained in:
35
learn_class/modern_cpp_30/RAII/heap.cpp
Normal file
35
learn_class/modern_cpp_30/RAII/heap.cpp
Normal file
@@ -0,0 +1,35 @@
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
class bar {};
|
||||
|
||||
// java 程序员风格
|
||||
void foo() {
|
||||
cout << "method 1" << endl;
|
||||
bar *ptr = new bar();
|
||||
delete ptr;
|
||||
}
|
||||
|
||||
bar *make_bar() {
|
||||
bar *ptr = nullptr;
|
||||
try {
|
||||
ptr = new bar();
|
||||
} catch (...) {
|
||||
delete ptr;
|
||||
throw;
|
||||
}
|
||||
return ptr;
|
||||
}
|
||||
// 独立出函数 分配和释放不在一个函数里
|
||||
void foo1() {
|
||||
cout << "method 2" << endl;
|
||||
bar *ptr = make_bar();
|
||||
delete ptr;
|
||||
}
|
||||
|
||||
int main() {
|
||||
foo();
|
||||
foo1();
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user