我不知道QFile时的行为,在这种情况下,我真的需要调用QFile :: close()吗?
bool Class::Function (const QString & name)
{
QFile fp (name);
if (fp.open (QIODevice::ReadOnly))
{
// read file
return false;
}
return true;
}
嗯,它不是像在C(你必须关闭并免费)的文件*指针,这会是一个问题,如果我不叫一个QFile :: close()(它是否在销毁时自动执行)?
'QFile'继承'QFileDevice',它的析构函数确实调用了'QFileDevice :: close()'。 – rsht
你说得对。我忘了检查'QFile'类的继承链。所以在这种情况下不需要调用close()函数。感谢您指出了这一点。 – jonathanzh
现在我看到了使用继承的另一个缺点:必须将文档复制到其派生类中,例如'QFileDevice' - >'QFile'。我不确定是否有更好的方法来在继承链中的所有类中提供相同的功能。 – jonathanzh