2017年11月13日
《その125》 関数テンプレート
関数テンプレート
次のプログラムは、仮引数に与えられた数を3乗して返却する単純なプログラムです。
引数に int型数値を受け取る関数 cube と double型数値を受け取る関数 cube が多重定義されています( @ と A )。
------------------------------
#include <iostream>
int cube(int n) { // @
return n * n * n;
}
double cube(double a) { // A
return a * a * a;
}
int main() {
int p = 10;
double q = 8.5;
std::cout << cube(p) << '\n';
std::cout << cube(q) << '\n';
}
------------------------------
関数@,A の違いは、int と double の部分だけです。
いま、int と double の2種類の型名をまとめて、例えば Type と書くことにすると、関数@,A は
Type cube(Type x) { // B
return x * x * x;
}
となります。
はじめに template <class Type> と書いてから、Bを記述します。これが、関数テンプレートです。
※ template <class Type> は、
template <class Type>
Type cube(Type x) {
return x * x * x;
}
「 これは関数テンプレートです<型名をTypeにしてあります> 」という感じでしょうか。
------------------------------
#include <iostream>
template <class Type>
Type cube(Type x) {
return x * x * x;
}
int main() {
int p = 10;
double q = 8.5;
std::cout << cube(p) << '\n';
std::cout << cube(q) << '\n';
}
------------------------------
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/6966037
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック