测试默认构造的 QFileInfo

Tim*_*ann 5 c++ qt

我想使用 type 的可选参数QFileInfo。测试调用者是否提供了值或是否使用了默认值的规范方法是什么?

// declaration
void foo(QFileInfo fi = QFileInfo());

// definition
void foo(QFileInfo fi)
{
    if ( /* what to test for: "is default" */ ) {

    }
}
Run Code Online (Sandbox Code Playgroud)

通常默认构造的 Qt 对象具有类似isValid()或 的内容isEmpty()。然而,在QFileInfo.

一种选择是fi.filePath().isEmpty()。有没有更好/更简单的东西?

Mat*_*lia 3

fi.filePath().isEmpty()鉴于调用默认构造函数的效果是创建一个QFileInfo没有文件引用的文件,这似乎是最直接和最有效的。

QFileInfo::QFileInfo()

构造一个空的 QFileInfo 对象。

请注意,空的 QFileInfo 对象不包含文件引用。