打印
[其它产品/技术]

文件操作中的RAII使用

[复制链接]
83|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 小小蚂蚁举千斤 于 2024-3-28 19:28 编辑

在文件操作中,使用RAII可以有效地管理文件资源的获取和释放,避免忘记关闭文件或异常时未能正确释放资源的问题。



#include <iostream>
#include <fstream>

class File {
public:
    File(const std::string& filename) : file(filename) {
        if (!file.is_open()) {
            throw std::runtime_error("Failed to open file: " + filename);
        }
    }

    ~File() {
        if (file.is_open()) {
            file.close();
        }
    }

    void write(const std::string& data) {
        file << data;
    }

private:
    std::ofstream file;
};

int main() {
    try {
        File myfile("example.txt");
        myfile.write("Hello, RAII!");
    } catch (const std::exception& e) {
        std::cout << e.what() << std::endl;
    }

    return 0;
}



使用特权

评论回复
沙发
LOVEEVER| | 2024-3-27 14:37 | 只看该作者
使用RAII可以有效地管理文件资源的获取和释放,楼主这个程序再规范一下就更好

使用特权

评论回复
板凳
jf101| | 2024-3-28 19:04 | 只看该作者
很好的解决了忘记关闭文件或异常时未能正确释放资源的问题

使用特权

评论回复
地板
星辰大海不退缩| | 2024-3-29 14:19 | 只看该作者
RAII可以有效地管理文件资源的获取和释放,避免忘记关闭文件或异常时未能正确释放资源的问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

151

主题

1165

帖子

0

粉丝