c++ - 如何在 C++ 类中定义 vector <ifstream>

标签 c++ vector fstream

我需要像这样的类中的 vector 成员:

class A
{
private:
vector<ifstream> _files;
public:
bool addFile(const string& filePath);
};

bool A::addFile(const string& filePath)
{
ifstream ifile(filePath.c_str());
_files.push_back(ifile);//but errors;
}

如何成功编译完成本类(class);

现在我的解决方案是使用 vector 。这可以吗?或者一些潜在的危险?

最佳答案

STL 容器需要元素是 CopyConstructibleAssignablestd::ifstream 不可复制。您需要使用指向 std::ifstream 的智能指针。

关于c++ - 如何在 C++ 类中定义 vector <ifstream>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17829961/

相关文章:

c++ - 调用 std::map::emplace() 并避免不必要的构造

c++ - OpenGL 着色器加载失败

c++ - 在 for range 循环中迭代包含 vector 的取消引用的 unique_ptr

c++ - 如何通过读取文件将不同数据类型的数据推送到一个 vector 中?

c - 我可以使用哪种索引方法来存储数组中 X^2 vector 之间的距离而没有冗余?

c++ - 使用 std::fstream 读取文本文件时如何使用非默认分隔符?

c++ - 模板的显式特化

c++ - 为什么初始化列表会导致 2 个数据拷贝,而不仅仅是一个拷贝将其传递给函数?

c++ - 字符串和 fstream 的问题

c++ - 类中的 ofstream - 试图引用已删除的函数