Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk melaksanakan kelas generik dalam C++?

Bagaimana untuk melaksanakan kelas generik dalam C++?

王林
王林asal
2024-06-06 13:13:57610semak imbas

Melaksanakan kelas generik dalam C++: menggunakan templat, ruang letak untuk jenis tertentu. Buat contoh kelas generik, menentukan parameter jenis. Kelas generik membenarkan kod yang sama digunakan untuk jenis data yang berbeza. Aplikasi praktikal: Gunakan kelas StudentArray generik untuk menyimpan dan memproses pelbagai jenis data, seperti nama pelajar.

Bagaimana untuk melaksanakan kelas generik dalam C++?

Cara Melaksanakan Kelas Generik dalam C++

Kelas generik membolehkan anda mencipta kod yang boleh menggunakan jenis data yang berbeza berdasarkan parameter jenis tanpa pengubahsuaian. Begini caranya untuk melaksanakan kelas generik dalam 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;
};

Dalam contoh ini, GenericClass 是一个泛型类,T ialah pemegang tempat untuk jenis tersebut. Anda boleh membuat contoh kelas generik dengan menentukan parameter jenis. Contohnya:

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

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

Kes praktikal:

Pertimbangkan tatasusunan yang mengandungi nama pelajar. Kita boleh menggunakan kelas generik untuk menyimpan dan memproses jenis data yang berbeza, contohnya:

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();
}

Kod ini mencipta tatasusunan generik yang mengandungi 5 rentetan. Ia mempunyai keupayaan untuk menambah dan mencetak nama pelajar.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kelas generik dalam C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn