クラス インスタンスでの静的メンバー メソッドの呼び出し
C では、静的メンバー メソッドを直接またはクラス インスタンスを通じて呼び出すことができます。この動作により、静的メンバー メソッドの使用に対する標準の期待に関する疑問が生じる可能性があります。
C 標準では、静的メンバー メソッドはインスタンスなしで呼び出すことができると明示的に規定されています。ただし、これはインスタンスを通じてそれらを呼び出す可能性を排除するものではありません。
次のコード例を考えてみましょう:
class Test { public: static void DoCrash() { std::cout << "TEST IT!" << std::endl; } }; int main() { Test k; k.DoCrash(); // calling a static method like a member method... }
この例では、静的メソッド DoCrash() がインスタンス上で呼び出されます。 Test クラスのインスタンス (k)。驚くべきことに、このコードはエラーなしでコンパイルおよび実行され、「TEST IT!」と表示されます。
なぜこれが許可されているのですか?
標準では、インスタンスを介して静的メンバー メソッドを呼び出すことが許可されています。いくつかの理由:
追加ポイント
インスタンスを介した静的メンバー メソッドの呼び出しは許可されていますが、一般的には推奨されません。これは、特にコードが更新または変更された場合に、混乱や予期せぬ動作が発生する可能性があるためです。明確さと正確さのために、Test::DoCrash().
のように、クラス名を使用して静的メンバー メソッドを直接呼び出すことをお勧めします。以上がC のクラス インスタンスで静的メンバー メソッドを呼び出すことはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。