C++ プログラミングガイド

オブジェクト指向の特徴

C++ におけるデータの抽象化の基本単位である「クラス」にはデータが含まれ、そのデータに対する演算が定義されています。

クラスは 1 つ以上のクラスの特性を継承し、それらのクラスの下位のクラスになれます。この特性は、「継承」または「派生」と呼ばれます。引き継がれたクラス (親クラス) は C++ では「基底」クラスと呼ばれ、他のプログラミング言語では「スーパー」クラスと呼ばれます。子クラスは C++ では「派生」クラスと呼ばれ、他のプログラミング言語では「サブクラス」と呼ばれます。派生クラスは、その基底クラスのすべてのデータを含みます (通常はすべての演算も含む)。派生クラスには、基底クラスにはない新しいデータが追加されていたり、基底クラスとは異なる演算が含まれている場合もあります。

基底クラスを派生クラスに置き換えた形のクラス階層を作ることもできます。たとえば Window クラスは、派生クラスとして、ScrollingWindow クラスを持つことができ、ScrollingWindow クラスは Window クラスの特性に加えてその内容がスクロール可能であるという特性を備えています。そのため、ScrollingWindow クラスは、Window クラスが存在する位置であればどこにでも使用できます。このように代替できる特性を、多相性 (「多くの形式を持つ」という意味) と呼びます。

継承を使用し、多相性を持つ抽象データ型を使って設計されたプログラムを「オブジェクト指向のプログラム」と呼びます。