C のクラス インスタンスで静的メンバー メソッドを呼び出すことはできますか?
C のクラス インスタンスで静的メンバー メソッドを呼び出す
C でクラス インスタンスで静的メンバー メソッドを呼び出すことの妥当性に関して疑問が生じます。静的メンバー メソッドは通常、クラス名を通じて呼び出されますが、以下のコード スニペットはこの規則と矛盾しているようです:
class Test { public: static void DoCrash() { std::cout << "TEST IT!" << std::endl; } }; int main() { Test k; k.DoCrash(); }
質問:
- ですか?クラス インスタンス構文を使用して静的メンバー メソッドを呼び出すのは正しいですか?
- そうであれば、その背後にある理論的根拠は何ですか?それは?
答え:
従来、静的メンバー メソッドはクラス名を通じて呼び出されますが、C 標準ではクラス インスタンスで呼び出すことが許可されています。これは、C 03 標準の次のセクションから明らかです:
「クラス X の静的メンバー s は、修飾 ID 式 X::s を使用して参照できます。クラスを使用する必要はありません」静的メンバーを参照するためのメンバー アクセス構文 (5.2.5) 静的メンバーは、クラス メンバー アクセス構文を使用して参照できます。この場合、object-expression は次のようになります。 "
これは、クラス インスタンス構文を介した静的メンバー メソッドの呼び出しが許可されるだけでなく、セマンティクスも異なることを意味します。このような場合、オブジェクト式が評価され、汎用プログラミングのコンテキストで利点が得られる可能性があります。
例:
次のコードは、静的メンバー メソッドがどのように使用されるかを示しています。クラス名とインスタンス構文の両方で使用できます:
class Process { public: static void Reschedule() { /* ... */ } }; int main() { Process::Reschedule(); // Using class name syntax Process p; p.Reschedule(); // Using instance syntax }
以上がC のクラス インスタンスで静的メンバー メソッドを呼び出すことはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











C言語関数によって返される値の種類は何ですか?返品値を決定するものは何ですか?

STL(ソート、検索、変換など)のアルゴリズムを効率的に使用するにはどうすればよいですか?
