使用 & 运算符将函数指定为默认参数



我正在研究一个在Qt中设置QML表内信息的例子,我不明白作为默认参数传递的是什么:

int rowCount(const QModelIndex & = QModelIndex()) const override
{
return 200;
}

示例的源代码可以在这里找到。

我猜const QModelIndex & = QModelIndex()意味着默认参数是对函数QModelIndex()的引用,这是一个内联函数。这是正确的吗?有人能给我解释一下这是怎么回事吗?

如注释所述:

int rowCount(const QModelIndex & = QModelIndex()) const override

定义了被覆盖的成员函数rowCount,它的一个未命名参数具有默认值QModelIndex()。对于任何类型T,T::T()定义了它的默认构造函数,因此QModelIndex()是默认构造的QModelIndex对象。定义未命名成员函数实参的这种模式在从抽象接口派生时是常见的做法,其中重写的实现对实参没有用处。

最新更新