ホームページ >バックエンド開発 >C++ >C++ でジェネリック クラスを実装するにはどうすればよいですか?

C++ でジェネリック クラスを実装するにはどうすればよいですか?

王林
王林オリジナル
2024-06-06 13:13:57593ブラウズ

C++ でのジェネリック クラスの実装: テンプレート、指定された型のプレースホルダーを使用します。型パラメーターを指定して、ジェネリック クラスのインスタンスを作成します。ジェネリック クラスを使用すると、異なるデータ型に同じコードを使用できます。実際の応用: 汎用 StudentArray クラスを使用して、生徒の名前など、さまざまな種類のデータを保存および処理します。

C++ でジェネリック クラスを実装するにはどうすればよいですか?

C++ でジェネリック クラスを実装する方法

ジェネリック クラスを使用すると、型パラメーターに基づいて、変更せずにさまざまなデータ型を使用できるコードを作成できます。 C++ でジェネリック クラスを実装する方法は次のとおりです。

#include <iostream>

template <typename T>
class GenericClass {
public:
    GenericClass(T value) : val(value) {}
    void print() {
        std::cout << "Value: " << val << std::endl;
    }
private:
    T val;
};

この例では、 GenericClass 是一个泛型类,T は型のプレースホルダーです。型パラメーターを指定して、ジェネリック クラスのインスタンスを作成できます。例:

GenericClass<int> intClass(10);
GenericClass<std::string> strClass("Hello");

intClass.print();  // 输出:“Value:10”
strClass.print();  // 输出:“Value:Hello”

実際のケース:

生徒の名前を含む配列を考えてみましょう。ジェネリック クラスを使用して、さまざまな種類のデータを保存および処理できます。例:

template <typename T>
class StudentArray {
public:
    StudentArray(size_t size) : arr(new T[size]) {}
    void add(T name, int index) {
        arr[index] = name;
    }
    void print() {
        for (size_t i = 0; i < size(); ++i) {
            std::cout << "Student " << (i + 1) << ": " << arr[i] << std::endl;
        }
    }
    size_t size() {
        return size_;
    }
private:
    T* arr;
    size_t size_;
};

int main() {
    StudentArray<std::string> names(5);

    names.add("John", 0);
    names.add("Jane", 1);
    names.add("Peter", 2);
    names.add("Susan", 3);
    names.add("Thomas", 4);

    names.print();
}

このコードは、5 つの文字列を含むジェネリック配列を作成します。生徒の名前を追加して印刷する機能があります。

以上がC++ でジェネリック クラスを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。