std :: ofstream变量定义问题

时间:2016-03-08 17:59:38

标签: c++ function variables global ofstream

我的ofstream变量outfile出现问题。我全局定义它,然后尝试在函数中更改它:

ofstream outfile("C:\\folder1\\folder2\\file1.file");

void a() {
    ofstream outfile("C:\\folder3\\folder4\\file2.file");
}

main(){
    a();
    outfile << "TEST";
}

这不起作用。如果我尝试删除第二个声明中的ofstream,我会收到错误。

注意:我的调试器坏了

1 个答案:

答案 0 :(得分:2)

  

这不起作用。如果我尝试删除第二个声明中的ofstream,我会收到错误。

当然,operator()没有ofstream超载,假设您一直在写

void a() {
    outfile("C:\\folder3\\folder4\\file2.file");
}

请注意,还没有定义赋值运算符,例如

void a() {
    outfile = ofstream("C:\\folder3\\folder4\\file2.file");
}

也无法使用。

最接近的是

void a() {
    outfile.close();
    outfile.open("C:\\folder3\\folder4\\file2.file");
}

真正的问题是恕我直言,为什么你需要在全球范围内声明outfile。通常情况下根本没有必要。