クラスベース

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

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

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

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

 脚注 

くらすへえす