ジェネリック プログラミングでは、クラス テンプレートを作成することで、さまざまな型のデータを使用するコードが可能になります (T は型パラメーター)。クラス テンプレートを作成するための構文は次のとおりです: template
クラス テンプレートを使用した C++ でのジェネリック プログラミング
ジェネリック プログラミングは、さまざまな種類のデータを処理するコードを作成できるようにする手法です。これは、型パラメーターを使用してクラスを定義するクラス テンプレートを作成することで実現できます。
クラス テンプレートを作成する
クラス テンプレートを作成するには、次の構文を使用する必要があります:
template <typename T> class MyClass { // 类定义 };
ここで、T
は型パラメーターであり、具象型に置き換えられます。 T
是类型参数,它将用具体类型替换。
使用类模板
要使用类模板,请在使用具体类型的情况下实例化它。例如:
MyClass<int> myIntClass;
这将创建一个 MyClass
实例,其中 T
被 int
替换。
实战案例
让我们考虑一个将数组中元素乘以某个值的函数:
void multiplyArray(int* arr, int size, int factor) { for (int i = 0; i < size; i++) { arr[i] *= factor; } }
此函数只能用于整数数组。要使其对任何类型数据通用,我们可以使用类模板:
template <typename T> class ArrayMultiplier { public: void multiply(T* arr, int size, T factor) { for (int i = 0; i < size; i++) { arr[i] *= factor; } } };
要使用该类,我们实例化 ArrayMultiplier
并调用 multiply
クラス テンプレートの使用
🎜🎜 クラス テンプレートを使用するには、具象型を使用してインスタンスを作成します。例: 🎜ArrayMultiplier<int> intMultiplier; int arr[] = {1, 2, 3}; intMultiplier.multiply(arr, 3, 10);
MyClass
のインスタンスが作成されます。T
は int
に置き換えられます。 🎜🎜🎜実際のケース🎜🎜🎜配列内の要素に特定の値を乗算する関数を考えてみましょう: 🎜rrreee🎜この関数は整数配列にのみ使用できます。あらゆるタイプのデータに共通にするには、クラス テンプレートを使用します: 🎜rrreee🎜 このクラスを使用するには、ArrayMultiplier
をインスタンス化し、multiply
メソッドを呼び出します: 🎜rrreee🎜Now , このコードは、変更を加えることなく、あらゆるタイプの配列に使用できます。 🎜以上がC++ の汎用プログラミングでは、クラス テンプレートを通じてコードの再利用をどのように実現するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。