コンテナクラスと呼ばれる方法が使われる。処理(アルゴリズム)を記述しておく。クラスを定義し、仮想関数のメカニズムを使ってそのアルゴリズムが動くようにしておく。すれば、面倒なアルゴリズムを、違う型でもそのアルゴリズムを使える。クラスなどと呼ばれる。データ並び替えなどのアルゴリズムが、使える例を示した。異なる型のことを考えていないため、実行時に動かなくなる。この2つの機能は、文法の字面では似ているが、考え方はまるっきり違う。以下に、固定長スタックを例に使い方を中心に説明する。テンプレートC++のテンプレート機能の基本原理は、実はあんまりオブジェクト指向と関係はない。整数データを記憶するスタックのプログラムは以下のようになる。;}しかし、整数を覚えるスタックは記述できたが、実数を覚えるスタックや文字列を覚えるスタックは、改めて記述する必要がある。この不便さを解消するのがテンプレート機能である。型Tにintを割り当てた、処理が生成される。型Tにdoubleを割り当てた、処理が生成される。具体的に型を明記して使われた時点で、その型に応じた機械語を生成してくれる。JavaのGenericsJavaのGenericsは、字面や使い勝手では、C++のテンプレートと同じように使う。