0

私はこのようなクラスを持っています:

class A
{
    public:
         A();
         ~A();

         bool init(); 
    private:

         void LeftCallback(CCObject* sender);     
}

私のinitメソッドでは、次を使用してmenu_selectorを作成しようとしています:

menu_selector(LeftCallback);

問題は、これが機能しないことです。このように機能させるには、クラス スコープを指定する必要があります。

menu_selector(A::LeftCallback);

メソッド名を使用する代わりに、この状況でクラス スコープを追加しなければならないのはなぜですか?

前もって感謝します。

4

1 に答える 1

2

基本的に、言語があなたにそれを要求するからです。

なぜこれが決定されたのか正確にはわかりませんが、人間がコードを読む場合でも、関数ポインターとメソッドポインターの間のあいまいさを回避するのに役立ちます.

于 2013-10-02T14:28:39.267 に答える