えば、二つの変数を加算して結果を返す関数を想定する。Cであれば、いかなる理由があっても同名の関数は定義できなかったため、例えばint型用の加算関数、double型用の加算関数、などを各々別名で用意する必要があった。C++では、同じスコープ内に同じ名前の関数を複数定義することができるようになり、型が異なる関数を同名で定義することができる。それぞれの関数の区別のために、シグネチャ、より具体的には引数が異なっている必要がある。このような機能を、C++ではオーバーロードという。利点オーバーロードを用いると、同じスコープ内に同名の関数(あるいはメソッド)にすることが可能である。定義は、原則としてデータ型ごとに別々に行なう必要があるが、テンプレートを使うことで、定義を一回にまとめることも可能である。C++はデータ型に厳密であるので、引数のデータ型からコンパイルの際にどの関数を用いればいいのかが一意に定まる。このため、このようなことが可能となった。このようにして関数(メソッド)を一つにまとめることで、引数と戻り値のデータ型を抽象化することが可能となる。intとdoubleの加算関数を用意する場合、Cであれば、次のようになる。d2);}C++でオーバーロードを用いると、同じ関数名にすることができる。d2);}この例ではシンプルにするためにサブルーチンとして説明しているが、この機能はメソッドの定義などで威力を発揮する。参加の案内ダウンロード↑本の。