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

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

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

    }
}

通常,默认构造的Qt对象具有类似isValid()isEmpty()的内容。但是,QFileInfo中似乎没有这样的东西。

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

最佳答案

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



一个更明确的替代方法可能是将fi与另一个空的QFileInfo进行比较,就像fi == QFileInfo()一样,但是每次都进行构造以进行比较是有点浪费的。

关于c++ - 测试默认构造的QFileInfo,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45652586/

10-11 18:47