今天我看到这段代码:
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”,编译成功。 :
是什么意思?
最佳答案
如您所想,预期的代码可能是 QTreeWidget::dragMoveEvent(event);
。如果 CameraTree
继承自 QTreeWidget
,则 QTreeWidget::dragMoveEvent(event)
无需静态即可从 CameraTree
调用>。
在 C++ 中,标签用单个冒号 :
表示。 QTreeWidget:dragMoveEvent(event);
编译的原因是因为 QTreeWidget:
被解释为标签然后 dragMoveEvent(event);
是一个递归打电话。
关于c++ - ":"(一个冒号)在 "Klass:method(p)"中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47149006/