関数を宣言する際にプログラマはデフォルト引数を指定できる。関数を呼び出すときに引数を省略した場合はデフォルト引数が適用される。関数を呼び出すときに宣言よりも引数の数が少ない場合は、左から右の順で引数の型が比較され、後半部分にデフォルト引数が適用される。たいていの場合は一つの関数にデフォルト引数を指定するよりも、引数の数が異なる関数をオーバーロードする方が望ましい。
動的な多態.
派生.
基底クラスへのポインタおよび参照は、正確に型が一致するオブジェクトだけでなく、その派生クラスのオブジェクトを指すことができる（リスコフの置換原則）。これにより、複数の異なる派生型を、同一の基底型で統一的に扱うことが可能となる。また、基底型へのポインタの配列やコンテナは、複数の異なる派生型へのポインタを保持できる。派生オブジェクトから基底オブジェクトへの変換（アップキャスト）では、リスコフの置換原則により、明示的なキャストは必要ない。
仮想関数.
テンプレート.
単一行コメント.
互換性.
概要.
開発の動機は、ある制限下におかれたモデル群の全体の挙動をどう記述するか、というものである。気体の分子運動を例にとると、システム全体を考えてその中の項として分子を扱うよりも、一つの一つの気体分子をモデル化し、それぞれの相互作用の結果をシステムとして捉える方が自然で取り扱いやすい。その為には小さなモデル、関連する法則、それらを一度に複数取り扱う能力が必要となる。こうして属性を備えたオブジェクト概念と、それに従属するメソッド概念が生まれたのである。
歴史.
 は やその後のオブジェクト指向言語に影響を及ぼした。 だけがコルーチンをサポートした言語ではないし、真の並列性は持たないが、アクターモデルの概念を呼び起こすのに役立った。
サンプルコード.
最小のプログラム.
しかしながら合理的に考えれば最小のプログラムは空のブロックとして表現される。
End ;
古典的.
End ;
典型的サブクラスと仮想関数.
クラス、サブクラス、仮想関数を用いた現実的な例を以下に示す。
 End ;
 End ;
 End ;
 End ;
 ! Main program;
 End ;
名前呼び.