C++ クラス テンプレートは、さまざまなデータ型に適用できるクラスを作成できる汎用プログラミング ツールです。

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++ クラス テンプレートの使用を理解するのに役立つことを願っています。他にご質問がございましたら、お気軽にお問い合わせください。

おすすめ

転載: blog.csdn.net/m0_46376834/article/details/132804348