相关疑难解决方法(0)

我需要手动关闭ifstream吗?

close()我使用时需要手动拨打电话std::ifstream吗?

例如,在代码中:

std::string readContentsOfFile(std::string fileName) {

  std::ifstream file(fileName.c_str());

  if (file.good()) {
      std::stringstream buffer;
      buffer << file.rdbuf();
      file.close();

      return buffer.str();
  }
  throw std::runtime_exception("file not found");
}
Run Code Online (Sandbox Code Playgroud)

我需要file.close()手动拨打电话吗?不应该ifstream使用RAII来关闭文件?

c++ raii ifstream

187
推荐指数
5
解决办法
6万
查看次数

exit()或异常会阻止调用范围的析构函数吗?

假设我有以下代码:

struct mytype
{
    ~mytype() { /* do something like call Mix_CloseAudio etc */ }
};

int main()
{
    mytype instant;

    init_stuff();

    start();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

即使从start()内部的某个地方使用exit(),是否可以保证调用析构函数?

c++ destructor exit

20
推荐指数
2
解决办法
4597
查看次数

标签 统计

c++ ×2

destructor ×1

exit ×1

ifstream ×1

raii ×1