🔴 一句"还"都没写,账却是平的
这一趟过完,那东西还欠着没有
得记着还
不用记着
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)构造时记一笔,析构时记一笔:
#include <iostream>
/* 一个"借了就要还"的东西:构造时借,析构时还 */
struct Res {
static int made, gone;
Res() { made++; }
~Res() { gone++; }
};
int Res::made = 0;
int Res::gone = 0;
int main() {
{
Res a; /* 借 */
} /* 大括号一收,自动还 —— 没写任何一句还的代码 */
int after_first = Res::gone;
{
Res b;
Res c;
}
int after_second = Res::gone;
std::cout << Res::made << "/" << after_first << "/" << after_second
<< "/" << (Res::made - Res::gone) << "\n";
return 0;
}
全部评论