"Klass:method(p)"中":"(单个冒号)的含义是什么?

Hoà*_*rần 2 c++ syntax

今天我看到了这段代码:

void CameraTree::dragMoveEvent(QDragMoveEvent *event)
{
    QTreeWidget:dragMoveEvent(event);
}
Run Code Online (Sandbox Code Playgroud)

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

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??
}
Run Code Online (Sandbox Code Playgroud)

并且只警告"未使用的标签QTreeWidget",编译成功.什么:意思?

mni*_*tic 7

预期的代码可能QTreeWidget::dragMoveEvent(event);正如您所想.如果继承,则QTreeWidget::dragMoveEvent(event)不需要是静态的.在C++中,标签用单个冒号表示.编译的原因是因为被解释为标签然后是递归调用.CameraTreeCameraTreeQTreeWidget:QTreeWidget:dragMoveEvent(event);QTreeWidget:dragMoveEvent(event);