🔴 一句"还"都没写,账却是平的

👁️ 3 人浏览 💬 0 人评论 ❤️ 添加收藏

这一趟过完,那东西还欠着没有

得记着还

不用记着

(本条路线统一用 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;
}
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论