初始化并声明QFile

use*_*179 3 c++ qt

我可以初始化QFile并在第二次分配值吗?我试过这种方式

...
QFile file;
...
if (i == 0) file = QFile("foo.txt");
else file = QFile("bar.txt");
...
Run Code Online (Sandbox Code Playgroud)

但Qt Creator提出了这个错误:"'QFile&QFile :: operator =(const QFile&)'在此内容中是私有的"

你能帮助我吗?

Rei*_*ica 8

QFile是a QObject,那些是不可复制的和不可转让的.您正在寻找的setFileName方法是:

QFile file;
...
file.setFileName(i == 0 ? "foo.txt" : "bar.txt");
...
Run Code Online (Sandbox Code Playgroud)

你也可以

QFile file(i == 0 ? "foo.txt" : "bar.txt");
Run Code Online (Sandbox Code Playgroud)