什么":" (单个冒号)意味着" Klass:方法(p)"?

时间:2017-11-07 02:24:18

标签: c++ syntax

今天我看到了这段代码:

void CameraTree::dragMoveEvent(QDragMoveEvent *event)
{
    QTreeWidget:dragMoveEvent(event);
}

我认为上面的代码是错误的。但是:

void CameraTree::dragMoveEvent(QDragMoveEvent *event)
{
   dragMoveEvent(event);//infinite recursion???
}

void CameraTree::dragMoveEvent(QDragMoveEvent *event)
{
    QTreeWidget::dragMoveEvent(event);
    // I understand is called dragMoveEvent in class QTreeWidget.
    // But dragMoveEvent is not static??
}

仅警告"未使用的标签QTreeWidget",已成功编译。 :是什么意思?

1 个答案:

答案 0 :(得分:7)

您想到的代码可能是QTreeWidget::dragMoveEvent(event);。如果QTreeWidget::dragMoveEvent(event)继承自CameraTree,则CameraTree无需从QTreeWidget调用:。 在C ++中,标签用单个冒号QTreeWidget:dragMoveEvent(event);表示。 QTreeWidget:编译的原因是因为dragMoveEvent(event);被解释为标签,然后Element.style是递归调用。