🔴 C++ 那边写了几句还

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

(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)🔴 这一节把同一件事在三种语言里各做一遍:**C 手动 free、C++ 用 RAII、Python 交给运行时**。每道题的 code_language 不一样,注意看题面标的是哪一种。

#include <iostream>
#include <memory>

struct Res {
    static int made, gone;
    Res()  { made++; }
    ~Res() { gone++; }
};
int Res::made = 0;
int Res::gone = 0;

static int frees_written = 0;      /* 手写了几句"还" */

int main() {
    {
        auto a = std::make_unique<Res>();
        auto b = std::make_unique<Res>();
        auto c = std::make_unique<Res>();
        (void)a; (void)b; (void)c;
    }
    /* 上面一句 delete 都没写 */

    std::cout << Res::made << "/" << Res::gone << "/" << frees_written
              << "/" << (Res::made - Res::gone) << "\n";
    return 0;
}
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论