メンバー関数ポインターの呼び出し: 適切な構文の詳細
メンバー関数ポインターを使用する場合、正しい構文に従うことが重要です。実行成功。メンバー関数ポインターを介してメンバー関数を呼び出そうとするときに発生する典型的な問題を詳しく調べて、必要な解決策を提供しましょう。
誤ったコード スニペット:
class cat { public: void walk() { printf("cat is walking \n"); } }; int main(){ cat bigCat; void (cat::*pcat)(); pcat = &cat::walk; bigCat.*pcat(); }
コンパイル エラー: bigCat .*pcat();ステートメントはエラーを生成します。
解決策:
この問題を解決する鍵は、式 bigCat.*pcat() に適切な優先順位があることを確認することです。演算子の優先順位により、単項演算子が二項演算子よりも優先されます。したがって、ポインターからメンバーへのバインディング操作よりも関数呼び出し () を優先するには、かっこが必要です。*.
(bigCat.*pcat)(); ^ ^
関数呼び出しをかっこで囲むと、関数呼び出しが最初に実行され、その後にメンバー関数ポインターが実行されます。バインディング。
覚えておいてください:
以上がC でメンバー関数ポインターを正しく呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。