オブジェクト指向プログラミング言語において、クラスに付随しているメソッドのことです。
プログラミング言語によって呼び名は異なり、静的メンバ関数や静的メソッドといった呼び方があります。
メソッドには、インスタンスメソッドと、クラスメソッドとがあります。インスタンスメソッドはインスタンスに付随しているのに対し、クラスメソッドはクラスに付随しています。インスタンスがなければ使用できないインスタンスメソッドと違い(インスタンスに対してメッセージを送信することで起動するものだから)、クラスメソッドはインスタンスがなくても使用できます。
クラスメソッドは、同一のクラスに付随するクラス変数を操作したり、同一のクラスから作られるインスタンスが共通で使用する処理を実装したりするために使われます。また、インスタンスを生成するファクトリーメソッドを実装する手段としてもよく登場します。
オブジェクト指向プログラミングの考え方としては、クラスに対してメッセージを送信することで実行されますが、C++
などのプログラミング言語では関数と同じ考え方をしており、関数呼び出しによって実行します(MyClass::func()
のように、対象のクラスの指定が伴う点では違いがあります)。
C++ では、クラス定義の内側で宣言した関数のうち、static指定子を付加したものがクラスメソッドです(C++ では staticメンバ関数と呼ばれます)。
staticメンバ関数については、C++編【言語解説】第18章で解説しています。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |