このページでは、オブジェクト指向における「クラス」を取り上げます。
オブジェクト指向において、オブジェクトの実体を生成するための雛形(テンプレート、設計図)になるもののことです。
クラスは、オブジェクト指向の中でも、クラスベースと呼ばれる発想でオブジェクトを取り扱う場合に登場する概念です。そのほかにもプロトタイプベースと呼ばれる考え方がありますが、こちらはクラスを使いません。この2つの分類でいえば、C++ はクラスベースです。なお、オブジェクト指向プログラミング言語がどちらか一方にだけ忠実に従って設計されているとは限らず、JavaScript のように両方を取り入れている場合もあります。
クラスから生成されたオブジェクトの実体をインスタンスと呼びます。またインスタンスを作り出すことをインスタンス化といいます。1つのクラスから、いくつものインスタンスを作り出すことができます。
インスタンスはデータ(インスタンス変数)と、それを操作するメソッド(インスタンスメソッド)が一体化したものです。具体的なことはプログラミング言語の仕様によって異なりますが、クラスにはインスタンス変数の名前や型、インスタンスメソッドの名前や引数・戻り値の型、またそれらにアクセスできる範囲を(アクセス指定子によって)指定するようになっていることが多いです。
なお、インスタンス変数やインスタンスメソッドがインスタンスに付随しているのに対し、クラスに付随するものであるクラス変数とクラスメソッドというものがあり、これらもクラスに記述します。
クラスに関係する代表的な機能に継承があります。継承を使うと、すでに定義されているクラスの内容を引き継いだうえで、そこに新たな内容を加えたクラスを定義できます。元になった側のクラスをスーパークラス、新しく定義されるクラスをサブクラスといいます。
C++ によるクラスの解説が、C++編【言語解説】第11章、第12章、第13章、第26章、第27章などにあります。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |