栈解旋
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
class make {
public:
make() {
std::cout << "generate\n";
}
~make() {
std::cout << "delete\n";
}
};
void func() {
//在抛出异常的函数中,如果抛出异常之后,
//但函数没有结束,这时,栈上申请的对象都会被释放
make m;
throw std::move(m);
}
void test() {
try {
func();
}
catch (make &m) {
std::cout << "receive\n";
}
}
int main(){
test();
return 0;
}