2017-11-07 14 views
2

今日、私はこのコードを見て:"Klass:method(p)"の ":"(単一のコロン)は何を意味していますか?

私は上記のコードが間違っていると思います。しかし:

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

警告によると、**ラベル**です。 – Pang

+0

あなたはどういう意味ですか? QTreeWidget: dragMoveEvent(event); .. goto QTreeWidget; ありがとうございます。私はこれについて考えたことはありません。 –

+0

コードが間違っています。どちらが正しい? –

答えて

7

ご想像のとおり、意図したコードはおそらくQTreeWidget::dragMoveEvent(event);でした。 がQTreeWidgetから継承される場合、QTreeWidget::dragMoveEvent(event)は、CameraTreeから起動するために静的である必要はありません。 C++では、ラベルは単一のコロンで表示されます:QTreeWidget:dragMoveEvent(event);がコンパイルされる理由は、QTreeWidget:がラベルとして解釈され、dragMoveEvent(event);が再帰呼び出しであるためです。

関連する問題