当我尝试执行以下操作时,我在标题中收到错误。
class Test
{
private:
std::ifstream File;
public:
Test();
};
Test :: Test(){}
我知道堆栈上有很多关于这个问题的线程。我知道我可以通过像
这样简单的事情来解决我的问题std::ifstream *File;
我发布此问题的原因是因为我的导师告诉我,我应该能够在不修改我发布的第一个代码块的情况下执行此操作。我已经对此进行了研究,但我还没有发现任何可以表明我能做到的事情。有什么想法吗?
按要求。
class Test
{
private:
std::ifstream File;
public:
Test();
};
Test::Test() {}
int main()
{
Test test = Test();
return 0;
}
这是我无法编译的例子。
答案 0 :(得分:1)
该行
Test test = Test();
是一个问题,因为std::ifstream
没有复制构造函数或复制赋值运算符。使用:
Test test;
如果您有C ++ 11编译器,还可以使用:
Test test{};