クラステンプレート:
フォーマット:
1.文
テンプレート<型名T>
クラスAAA {
/ *使用Tのような、特定のタイプを示す:* /
プライベート:
TはOBJ;
公共:
ボイドTEST_FUNC(T&T);
...
};
定義2.
テンプレート<typenameに
T>
ボイドAAA <T> :: TEST_FUNC(T&T){...}
使用します。
1.使用インスタンス:
AAA <整数> A;
AAA <ダブル> B。
事前の2例:
テンプレートAAA <整数>;
リユース:
AAA <整数> A;
カスタム(同様の過負荷):
1.声明
テンプレート<>
クラスAAA <整数> {
...
公共:
ボイド試験(ボイド)。
}。
2.定義
空隙AAAを<整数> ::テスト(ボイド){...}
1の#include <iostreamの> 2の#include < ストリング・H> 3の#include <unistd.h> 4 5 使用 名前空間STDを、 6 7テンプレート<型名T> 8 クラスAAA { 9 プライベート: 10 のT T; 11 公衆: 12 ボイド TEST_FUNC(CONST T&T)。 13 ボイドプリント(ボイド)。 14 15 16 }。 17 18テンプレート<型名T> 19 無効(AAA <T> :: TEST_FUNC のconst T&T) 20は 、{ 21は 、この - > T = ; T 22である } 23は、 24テンプレート、<型名T> 25 空隙 AAA <T> ::プリント(ボイド)// Tこと注 26であります { 27 COUT << T << ENDL; 28 } 29 30 INTメイン(int型 ARGC、チャー ** atgv) 31である { 32 AAA < INT > A; // インスタンス使用した場合 33 a.test_func(1 )。 34 a.print()。 35 }
結果:
1
1の#include <iostreamの> 2の#include < ストリング・H> 3の#include <unistd.h> 4 5 使用 名前空間STDを、 6 7テンプレート<型名T> 8 クラスAAA { 9 プライベート: 10 のT T; 11 公衆: 12 ボイド TEST_FUNC(CONST T&T)。 13 ボイドプリント(ボイド)。 14 15 16 }。 17 18テンプレート<型名T> 19 ボイド AAA <T> :: TEST_FUNC(CONST T&T) 20 { 21 本 - > T = T。 22 } 23 24テンプレート<型名T> 25 空隙 AAA <T> ::プリント(ボイド)// 注意T 26 { 27 COUT << T << ENDL。 28 } 29 30テンプレート<> 31 クラス AAA < INT > { 32 公共: 33 ボイド test_func_int(CONST INT&T) 34 { 35 COUT << T << ENDL。 36 } 37 空隙 print_int(ボイド)。 38 39 }。 40 41 空隙 AAA < INT > :: print_int(ボイド) 42 { 43 COUT << " 試験用" << ENDL。 44 } 45 46 INTメイン(int型 ARGC、チャー ** atgv) 47 { 48 AAA < ダブル> A; // 使用してインスタンス化アプリケーション 49 a.test_funcを(1 ); 50 a.print(); 51は 52である AAA < INT > B; // 関数を実装するカスタム、先端が角括弧のカスタマイズを使用する必要がある場合型ブラケット 53は、 54である b.test_func_int(1 ); 55 b.print_int(); 56れます }
結果:
1
1
テストのために