MST

星途 面试题库

面试题:C++ 构造函数与析构函数的复杂场景应用

假设有一个名为`FileManager`的C++类,用于管理文件的打开、读写和关闭操作。请编写该类的构造函数和析构函数,要求构造函数打开一个指定文件名的文件(使用`std::fstream`),若打开失败则抛出异常;析构函数关闭该文件。同时,在构造函数中对文件对象进行适当的初始化设置,如设置文件打开模式为`std::ios::in | std::ios::out` 。
46.0万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>
#include <fstream>

class FileManager {
private:
    std::fstream file;

public:
    FileManager(const std::string& filename) {
        file.open(filename, std::ios::in | std::ios::out);
        if (!file.is_open()) {
            throw std::runtime_error("Failed to open file");
        }
    }

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