C++类模板是一种通用的编程工具,可以创建可以适用于多种数据类型的类。它们允许在类定义中使用参数,以便根据需要实例化具体的类。
使用C++类模板时,首先需要定义模板。模板定义的语法如下:
```cpp
template <typename T>
class MyClass {
// 类成员和方法的定义
};
その中には、typename T
任意の型を使用できるテンプレート パラメーターがあります。クラス定義では、T
型を表すために使用できます。
次に、テンプレートを使用して具体的なクラス オブジェクトをインスタンス化します。たとえば、整数を格納できるクラス オブジェクトを作成したい場合は、次のように実行できます。
MyClass<int> obj1;
このように、obj1
整数型でインスタンス化されたオブジェクトですMyClass
。
クラス テンプレートのメソッド定義は、クラスの内部でもクラスの外部でも定義できます。クラスの外でメソッドを定義することを選択した場合は、template<typename T>
メソッドがクラス テンプレートに属していることを示すために を使用できます。
以下は、クラス テンプレートの使用を示す例です。
template<typename T>
class MyStack {
private:
T* stack;
int size;
public:
MyStack() {
size = 0;
stack = new T[100];
}
void push(T element) {
stack[size++] = element;
}
T pop() {
return stack[--size];
}
};
int main() {
MyStack<int> stack;
stack.push(1);
stack.push(2);
stack.push(3);
int val = stack.pop();
cout << val << endl; // 输出3
return 0;
}
上の例では、MyStack
あらゆる種類のデータを格納できるスタックの作成に使用されるクラス テンプレートを定義しました。次に、main
関数内で、MyStack<int>
整数を格納するスタック オブジェクトをインスタンス化し、いくつかの操作を実行します。
この例が C++ クラス テンプレートの使用を理解するのに役立つことを願っています。他にご質問がございましたら、お気軽にお問い合わせください。