c++ - 关于ifstream : error ‘std::ios_base::ios_base(const std::ios_base&)’ is private

标签 c++ fstream c++98

当我尝试执行以下操作时,标题中出现错误。

class Test
{
private:
    std::ifstream File;


public:
    Test();

};

测试::测试() {}

我知道堆栈上有很多关于这个问题的线程。我知道我可以通过简单的方式解决我的问题

std::ifstream *File;

我发布这个问题的原因是因为我的导师告诉我,我应该能够在不修改我发布的第一个代码块的情况下做到这一点。我已经对此进行了研究,但没有发现任何可以证明我可以做到的事情。有什么想法吗?

根据要求。

class Test
{
private:
    std::ifstream File;


public:
    Test();
};

Test::Test() {}

int main()
{
Test test = Test();
return 0;
}

这是我无法编译的示例。

最佳答案

线

Test test = Test();

是一个问题,因为 std::ifstream 没有复制构造函数或复制赋值运算符。使用:

Test test;

如果您有 C++11 编译器,您还可以使用:

Test test{};

关于c++ - 关于ifstream : error ‘std::ios_base::ios_base(const std::ios_base&)’ is private,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33140401/

相关文章:

c++ - Ping 网络并获取 mac 地址

c++ - 如何让 child 进入n路树?

c++ - fin >> noskipws >> ch 始终为 false

c++ - 在Qt5应用程序上读取CSV文件时出现无限循环

c++ - 在 C++98 中 'dvd1' 必须由构造函数初始化,而不是 '{...}'

c++ - ADTF 过滤器触发器的默认值

类的 C++ 初学者问题,可能是析构函数

c++ fstream - 创建自己的格式化标志

c++ - 模板类作为参数模板: MSVC error - error C2977: too many template arguments(C++98)

c++ - 低于结构的运算符