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

王林
リリース: 2024-06-06 13:13:57
オリジナル
574 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート