クラスベース

オブジェクト指向プログラミングのスタイルの一つ

クラスベース (: Class-based) は、オブジェクト指向プログラミング(OOP)のスタイルのひとつであり、オブジェクトの生成にクラスを用いるスタイルを指している。OOPの標準的スタイルである。それと対比されるスタイルにプロトタイプベースがある。

クラスベースOOPは、先発のアラン・ケイSmalltalk流と、後発のビャーネ・ストロヴストルップC++流で二分されている。Smalltalk流はメッセージパッシングを基礎にしており、C++流は継承と動的ディスパッチを加えた抽象データ型のスーパーセットを基礎にしている。

クラスベースOOPでのオブジェクトは、総じてクラスを実体化したインスタンスと定義されている。クラスは、状態振る舞いの構成を定めた一種のであり、オブジェクトのひな型や設計図に例えられている。クラスにはカプセル化継承ポリモーフィズムをサポートするメカニズムが備えられているのが普通である。Smalltalkのクラスは、メタクラスインスタンスでもあるのでオブジェクトである。C++流のクラスはただのであり、そのインスタンスがオブジェクトである。

C++流のクラスベースは、静的型付け動的型付けで二分されている。静的型付けはクラスの構成解釈=オブジェクトの型チェックをコンパイル時にする機構であり、動的型付けはクラスの構成解釈=オブジェクトの型チェックを実行時にする機構である。

脚注

編集