新・明解C++で学ぶオブジェクト指向プログラミング | ||||
|
第10章 クラステンプレート
・いまさらだけど、コンストラクタの初期化の書き方はまだいまひとつ慣れない。
IntTwin( int f=0, int s=0 : v1(f), v2(s) { }
・swap テンプレートは、 と の両方のヘッダをインクルードしておくと新旧C++に対応できる。
・maxof サンプル
template Type maxof(Type a, Type b)
{
return a > b ? a : b ;
}
maxof (a, x);
利用例
Twin t1(15, 37);
Twin t2(“ABC”, “XYZ”);
・クラステンプレートの入れ子は、> と > のあいだにスペースを入れないといけない。
・配列クラステンプレート
template class Array{
int nelem;
Type* vec;
bool is_valid_index(int idx) { return idx >= 0 && idx < nelem ; }
利用例
Array x(5);
Array y(8);