我不确定 QFile 的行为,
bool Class::Function (const QString & name)
{
QFile fp (name);
if (fp.open (QIODevice::ReadOnly))
{
// read file
return false;
}
return true;
}
嗯,它不像 C 中的 FILE* 指针(你必须关闭并释放它),如果我不调用 QFile::close() (它会在销毁时自动执行),这会是一个问题吗?
我更喜欢在函数返回之前调用 fp.close() :这可能不是必需的,但也可能没有害处。
Qt 文档可能不反映实际代码。例如,以下是 Qt 5.5.0 中的源代码:
/*!
Destroys the file object, closing it if necessary.
*/
QFile::~QFile()
{
}
因此
QFile::close()
不会在析构函数中自动调用。文档可能需要更新。
作为一个额外的优点,将 QFile::open() 与 QFile::close() 匹配将确保下次调用函数
bool Class::Function()
时可以再次正确打开文件。