1

OnOK() と CDialog::OnOK() の違いは何ですか? この状況では何を使用すればよいですか?

void CMyDlg::OnBnClickedOk()
    {

        //...some code here

        CDialog::OnOK();//?

        //OnOK();
    }
4

1 に答える 1

3

メソッドをオーバーライドしている場合は、違いがありますOnOK()

このメソッドは仮想であるため、次のように呼び出すと:

OnOK();  // equivalent of this->OnOK();

これにより、仮想関数テーブルに従って実装が呼び出されます。つまり、クラスまたはサブクラスでの実装です。

あなたが呼び出す場合:

CDialog::OnOK();

CDialogこれは、実装されているもの(またはそのスーパー)の非仮想関数呼び出しです。

于 2013-04-26T12:47:05.037 に答える