スポンサードリンク
HOME > C++言語 > テンプレートとは?

C++言語 - テンプレートとは?

テンプレートの説明の前に、なぜテンプレート機能が用意されているか、

概要を示します。

#include <iostream>

using namespace std;

void showint(int data);
void showdouble(double data);

void main() {

   showint(100);
   showdouble(10.5);
}

void showint(int data)
{
   cout << data << '\n';
}

void showdouble(double data)
{
   cout << data << '\n';
}


このプログラムは、数値を出力するだけの単純なプログラムです。

整数値を出力するshowint関数と、小数値を出力するshowdouble関数があります。

注目すると、それぞれの関数内は、全く同じ記述内容です。

同じ内容なのに別々に関数を用意するのは、少し無駄な気がするでしょう。

 C++言語には、関数多重定義(オーバーロード)機能がありますので、

それを使って上記のプログラムを改良してみましょう。

#include <iostream>

using namespace std;

void show(int data);
void show(double data);

void main() {

   show(100);
   show(10.5);
}

void show(int data)
{
   cout << data << '\n';
}

void show(double data)
{
   cout << data << '\n';
}


このプログラムでは、

showintと、showdoubleの2つの関数を同じ関数名showと変更し、

整数型と小数型用の引数を取る別々の関数を多重定義しました。

これによってキレイなプログラムに改良されました。

しかし、 それぞれの関数内は、全く同じ記述内容である事には変わりありません。

まだ改良する余地があります。

 そこで、テンプレートと言う機能が登場します。

テンプレート機能を使ってプログラムを改良してみます。

#include <iostream>

using namespace std;

template <typename T> void show(T data);

void main() {

   show(100);
   show(10.5);
}

template <typename T> void show(T data)
{
   cout << data << '\n';
}


このプログラムは、テンプレートを使ってshow関数を記述した例です。

どうでしょう?前のプログラムと比べてコードの記述量がずいぶん減りました。

show関数が、テンプレート機能によって1つの関数にまとめられています。

このように、関数内容が同じでデータ型だけが違う処理をする場合に、

テンプレートと言う機能が有効な記述方法となります。

 この例ではテンプレート関数と言う機能を使っていますが、

テンプレート関数の詳しい解説はテンプレート関数を見て下さい。



スポンサードリンク







HOME

言語解説編
プログラミング用語・知識

C言語

C++言語

Java

C#

Visual Basic.NET

アプリケーション編
C言語による
コンソールプログラミング




Copyright (C) プログラミングランド All Rights Reserved