使用 & 运算符将函数分配为默认参数
Assign function as default parameter using & operator
我正在研究在 Qt 中的 QML table 中设置信息的示例,但我不明白作为默认参数传递的是什么:
int rowCount(const QModelIndex & = QModelIndex()) const override
{
return 200;
}
例子的来源可以找到here。
我的猜测是const QModelIndex & = QModelIndex()
意味着默认参数是对函数QModelIndex()
的引用,它是一个内联函数。这个对吗?有人可以向我解释一下这里发生了什么吗?
如评论所述:
int rowCount(const QModelIndex & = QModelIndex()) const override
定义了重写的成员函数rowCount
,它的一个未命名参数的默认值为QModelIndex()
。对于任何类型 T
,T::T()
定义了它的默认构造函数,因此 QModelIndex()
是一个默认构造的 QModelIndex
对象。这种定义未命名成员函数参数的模式是从覆盖实现对参数没有用处的抽象接口派生时的常见做法。
我正在研究在 Qt 中的 QML table 中设置信息的示例,但我不明白作为默认参数传递的是什么:
int rowCount(const QModelIndex & = QModelIndex()) const override
{
return 200;
}
例子的来源可以找到here。
我的猜测是const QModelIndex & = QModelIndex()
意味着默认参数是对函数QModelIndex()
的引用,它是一个内联函数。这个对吗?有人可以向我解释一下这里发生了什么吗?
如评论所述:
int rowCount(const QModelIndex & = QModelIndex()) const override
定义了重写的成员函数rowCount
,它的一个未命名参数的默认值为QModelIndex()
。对于任何类型 T
,T::T()
定义了它的默认构造函数,因此 QModelIndex()
是一个默认构造的 QModelIndex
对象。这种定义未命名成员函数参数的模式是从覆盖实现对参数没有用处的抽象接口派生时的常见做法。