首頁  >  文章  >  後端開發  >  如何實作C++中的泛型類別?

如何實作C++中的泛型類別?

王林
王林原創
2024-06-06 13:13:57402瀏覽

在 C++ 中實作泛型類別:使用模板,指定類型的佔位符。建立泛型類別的實例,指定類型參數。泛型類別可以根據不同的資料類型使用相同代碼。實戰應用:使用泛型 StudentArray 類別儲存和處理不同類型的數據,例如學生姓名。

如何實作C++中的泛型類別?

如何實作C++ 中的泛型類別

泛型類別可讓您建立程式碼,該程式碼可以根據類型參數而無需修改地使用不同的資料類型。下面是如何在 C++ 中實作泛型類別:

#include 

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

在這個範例中,GenericClass 是一個泛型類,T 是類型的佔位符。您可以透過指定類型參數來建立泛型類別的實例。例如:

GenericClass intClass(10);
GenericClass strClass("Hello");

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

實戰案例:

考慮一個包含學生姓名的陣列的情況。我們可以使用泛型類別來儲存和處理不同類型的數據,例如:

template 
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 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn